Add Router#use and a router-wide middleware stack

In addition to the route-specific middleware functionality already available in the Router module, I would like to be able to add middleware to a stack that applies to _all_ routes. This patch introduces the `use` method on Router, which mimics the express API for adding middleware.