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
Won't `objectClasses.addAll(...)` add duplicate object classes if the same object classes were already part of the meta data (which wouldn't they be if the `User` object has already been retrieved)?