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