Refixing MapValue.add to have dirty subvalues under setValue if an earlier entry
was present, to allow rerendering (W-1678810).  Newly created keys (under
setValue, constructor, and put-of-missing-key) are still clean.  For put at
least, this may be counter-intuitive, but making new subobjects dirty results in
excessive initial-creation rerendering, and in some tests leads to errors.

This bugfix ignores what looks like a pre-existing leak, in which old values are
discarded with no attempt to destroy() them.

@rev amcculloch@
@bug W-1678810@
Merging origin/fabbott/patch-pending-refixMapAdd into 186/patch