* Do not attempt to change user email on SeAT if unchanged.
This prevents HTTP422 from being raised on password resets.
*Delete users on deactivation.
The existing disable user logic does nothing and results in a HTTP500.
It's safe to delete users entirely - the API keys are retained.
Fixes#844
* SeAT service in modular service app format
* Replace string concatenation with formatters
* Fix incorrect references to user
* Fix exception when user doesn't have seat active
* Prevent deletion of seat API keys by default
* Improve api response error handling
* Corrected notification message
* Added missing view returns
* Update SeAT to use permissions based access
* Update password generator to new style
* Correct logging message
* Fix seat role update tasks
* Correct validate user logic
* Add seat test settings
* Added basic seat unit tests
* Added add permissions function from other branch
* Remove obsolete settings references