Fix #128: Create Change diff against latest Ghost

Removed `origin`, `target` and `version` properties from `Change`. Instead of storing these in the Change we now pass the object and its ghost when creating the diff in `Change.toJSONObject()`.

This ensures that the diff being sent up is always against the latest version that we have a SV for.