Add overwrite flag to herodb put calls.  If this flag is set to true and an object is being put, then take the fields in the object and overwrite the existing fields and also remove any existing fields not in the incoming object.  This will only do a shallow replacement so child objects will not be affected.