Returns a new EncodeContext with key set to value. Does not modify this context — contexts are immutable.