add some documentation
refactor name of the diff object

it is better to use same naming convention as for JsonPatch and
JsonPointer
better object diffing

even probably correct one, the other diff algorithm was to rough
parse Json patch values
add tests for patch