Create JSON merge patch

Add function to create JSON merge patch that describes the differences between two JSON objects.

I am not actually using any of your existing code, but I thought it might be a good addition to your library anyway.

I found a crash bug in "Equals" by chance, I left the code in the test file, if you'd like to investigate.

Also "Equals" seem to ignore the difference between a null field and a non-existing field - that should probably be documented somewhere.