First pass of role based authorization
More complete implementation of role granting
Code complete but untidy
First stage of tidy up and docs