[Controller] Remove individual controllers
[AdminComponent] Each admin describes its own routes, code, name and pattern
[AdminController] Add flash data
[RouteCollection] Create a collection to store routes
[AdminPool] Create pool to store admins
[Exception] Exceptions
[Services] Default admins
[RouteBuilder] Route builder to be injected into admins
[View] Success message
[PoolRouteLoader] Load routes from admin pool
[CompilerPass] Compiler pass to load admins into pool
[Services] Remove individual controllers, add route loader, abstract admin, and route builder