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
I've forgotten the behavior for `AttributeModificationType.REPLACE`, namely whether it supports adding new attributes. Presuming it does, is this not inefficient to replace existing object classes with the same object class, which it seems it would do for all object classes?