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.
Is there a reason to split this across both?

I would have thought either `impl<.. R: ResponseFinalizer + 'static>` or `where R: ResponseFinalizer + 'static`. And preferably having the `T` bounded in the same place, either in introduction or where clause. 

Same for the `impl` block with `new`.