support updating objectClasses for a User

This PR does a few things:

- moves existing deactivatedUid and new objectClass meta-data to a common implementation meta-data HashMap.
- implementation meta-data is not observed for object equality
- updates objectClasses based on current state of User object
- always updates objectClass on object update
Is `objectClasses.remove(LDAP_OBJECTCLASS_CRU_PERSON_ATTRIBUTES)` necessary? Is there some scenario in which it will be a member of `objectClasses` such that it needs to be removed?