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.
*shakes fist*  I rearranged that per previous comment about it checking token validation after those bypasses! :)  Some of that was actually part of a previous fix where I ran around making sure all of the weird tokens that get created actually have "GRRSomesuch" names so you can kinda keep track of which part of the system is doing something when you have the verbose logging turned on.