Improved hasChanges and clone is updated with the response from the server

- Added support for hasChanges on new instances, even after saving to the backend
- Clone is now updated with the response from the server on create/update
- Added unit tests for a couple of other corner cases