Fix to ensure previous $array in extractAndSet is preserved

If previous keys are in the passed in array, they are automatically destroyed.  This patch fixes this behavior to ensure previous values are left in tact, and only non-array values will be destroyed, if patching with a nested set.