Update Patch interface to send Unmarshal object and mapping

Unmarshal into the real object to get the real values, while unmarshal
into interface{} to get the patched field names.

Unit test is updated as well.