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.
`document` can also be a root note

I googled this: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object

But it seems somewhat complicated... Maybe `"ownerDocument" in arguments[0]`?