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)
same for the split here