Multitenant routing

__This is a breaking change.__

- Changes the signature of m.route to be `m.route(rootElement, routeMap, defaultModule)`.
- Adds `m.route.clear` method for the sake of clearing route tables during testing.
- Updates tests for new signature.
- Retools two tests because bound redirects do not work (see comment in #250).

---

I could not get around using `m.route.clear` for testing. I'm open to suggestions for better ways.

I did not update any documentation/typedefs. I am waiting until this code has been reviewed to spend time with that.

---

Please let me know what you think of this. It's a product of the discussions in #250 and #256.
This is too much boilerplate. We can't expect people to do this for default routes