Slight refactoring of JSON::MergePatch#call

Breaking up the existing #call so that its a bit easier to
track the flow. This refactor introduces four private methods
to accomplish this.

* JSON::MergePatch#process_patch_property
* JSON::MergePatch#evaluate_patch_property
* JSON::MergePatch#remove_property
* JSON::MergePatch#update_property