Chained Auth

Description
-----------
Allows to restrict the values for for Access Levels, Access Durations, and User Roles depending on admin role.
You can chain an internal source to an external source

Impacts
-------
* Admin Gui
 * Can you now restrict an 'Admin Roles' to only accept certain values for Access Levels, Access Durations, and User Roles.
 * The new chained auth source (Create/Read/Update/Delete)
 * The chained source has two fields authentication_source and chained_authentication_source
 * authentication_source can only be any internal source except chained sources
 * chained_authentication_source can only be any external sources

* Captival Portal
 * When users are authenticate against a chained auth source they are taken to the chained_authentication_source signup page.
 * The user is properly registered after completing completing the chained_authentication_source requirements

Delete branch after merge
-------------------------
NO (Keeps your dirty paws off my repo)
would be useful to have tests for the new features here. like for how the roles are combined and make sure that the proper behavior happens.