[WIP] refactor module for routes.

INCOMPLETE. DO NOT MERGE.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| Refs tickets  | #1788 
| License       | MIT
| Doc PR        | -

## two major problems:
  1. cannot access route reload (or anything in the admin) because all the routes are non-functional in the adminpanel interface (due to this refactor). need a way to reload the routes without going to standard admin interface but just for this module. maybe something from the user interface? hidden by permissions?
  2. Are `$args` allowed as method parameters in controller methods? This module is littered with them. This makes further work on the controllers difficult. Can the entire $args part just be ripped out or is it there for BC?