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
It would be nice to know if/that eDirectory has internal logic not to update if value hasn't changed. 
1. True, but I'm sure we could remedy that.
2. We're not actually doing removes are we? That is, the api does not currently support removing any attributes, does it? I thought that currently, you can only add more object classes (or replace with the same). I'm not sure I understand the use case for Exception if we never remove object classes.
3. I suppose the option you mention is more efficient.  That is, https://github.com/GlobalTechnology/idm-user-management/blob/feat/updateClasses/ldaptive/src/main/java/org/ccci/idm/user/ldaptive/dao/LdaptiveUserDao.java#L369 could mask object classes known to always be part of create (this presumes we do not ever remove object classes).

I don't want to beat this to death or belabor this much longer. I may not have understood all your design decisions or the mitigating factors restricting a more efficient solution. After you've considered what I've written in this most recent post, I'm willing to defer to your preference at this point.