Replace AbstractDriver with PermissionFactory
Rename getPermissionType method
Add docs for creating drivers