get build up, tests running and passing

`urequire` looks for every call to `require` and then statically compiles that file... This doesn't work for async requiring, which happens in `Dispatcher#loadController`. To get around this, we have to `require` `require` and set it to a different variable so it doesn't get `require`'d at compile time.

Yo dawg, I hear...

Interesting reading if you care:
http://urequire.org/frequently-asked-questions
https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.1#breaking-async