feat(nickel): Support for sharing data between requests per route basis, take two!

This is my second attempt at #79 (first attempt at #108).

As you can see, this turned out to require very few changes and doesn't break any current code as far as I can see.
I'd opt for `DataHandler` or something similar, as `RouteHandler` & `RequestHandler` being similar but different may confuse people. It may be even better to have `RequestHandler` named `RouteHandler` as it's only ever used with routers?