feat(*): make router a middleware

With this change the router is just
a regular middleware and all routes
will be attached directly to the
router instead of `Nickel` itself.

Attaching routes to `Nickel` itself
will soon come back but will just
create a default router underneath.

Relates to: #59
feat(*): Allow usage of default router

With this change the user can attach
routes directly through the nickel object
again. This uses a default router under
the cover. It's however limited in a way
so that the default router is forced
to be the last middleware in the middleware
stack.

Fixes #59