Prevent interpolate() from overwriting values updated during merge

When during a merge, a RefValue instance (a scalar) gets overwritten by
a non RefValue scalar, then remove the record of the occurrence of the
overwritten RefValue. Otherwise, interpolate() will later
unconditionally overwrite the new value with the interpolated reference.

Arguably, interpolet() should check whether the value it's overwriting
is a RefValue instance, but that's left for another day.

Signed-off-by: martin f. krafft <madduck@madduck.net>