[WIP] Role management when editing a user

This PR aims to add role management on a user by user basis, which will allow support application wide permissions for users.

TODO:

- [ ] Add `RoleDecorator` for decorating system role names to friendly names
- [ ] Add `RoleProvider` for providing an array of all available roles in the application
- [ ] Update `UserFormType` so that it supports role management via a listener