Lazy middleware examples

This targets #104, and relates to the 'order independence' of #79. It also includes a few cleanups which I can split into a separate PR if desired.

`RequestHandler` is removed since it's equivalent to `Middleware` as it currently stands, I guess a type alias could be used but that might just confuse people? 

[breaking-change] Missed in the commit log, `ResponseFinalizer` has moved from `router::request_handler` to `middleware_handler::ResponseFinalizer`