Add blueprints hook and refactor router

I pulled all the controller and view stuff out of the router and put in in the appropriate hook (as mentioned in a TODO in the comments). I added a blueprints hook that allows you to add/override blueprints by placing them in in `/api/blueprints`. The different blueprints options (rest, actions, shortcuts) have been turned into standalone blueprints.