Add AbstractObservedSetComponent which allows tracking of added/removed items from sets.
Add a flag to Role so that changed roles can be synchronized properly. Also misc tidying in Protection.