Access control

Merged in the AccessControl work I did refactoring and adding logging.  Originally these were in CoreAccessControl and AdminUIAccessControl classes, but it was suggested I should merge it all in rather than maintaining separate classes.  This also rearranges the inheritance a little so BaseAccessControl has the effect of NullAccessControl and all classes add to and override functions from Base to extend functionality.
Note to self since github hasn't made this diff super-obvious: this and most of the below is new for basicaccess, formerly known as baseaccess.  It used to just check user labels as above.