Issue/112 duplicate changes

`Channel` will now request the full object if it is unable to apply an acknowledged remote change, and it will also remove any local changes for the same object.

`Bucket` can now check for local modifications when it is applying the full object that was requested. It will save the ghost even if it can't merge the changes, to make sure we have the latest SV and won't send duplicate changes back to Simperium.

Also added a new test that tests the full object merge with local modifications.