Fill out the permissions model

* Implement Subject class
* Add supporting class ContextData and interface NodeDiff for Subject
* Finish Context class
* Finish WepifProvider class
* Partial implementation of the PermissionsManager
* Finish PermissionSet (I think)
* Implement PlayerContext and GlobalContext
* Make main classes final
* Probably more stuff as well