Simplify the interface for building Angular-aware middlewares.

After getting some experience with writing middlewares that make use of
this module, we learned that every middleware ends up creating an injector,
setting the request on it, and then disposing the context at the end.

This is a breaking change to switch to a more convenient interface where
the middleware receives an injector directly, and the context is
automatically disposed when the request ends. This means that in the
common case a middleware function has less boilerplate and can concentrate
on whatever unique logic it's providing. The main 'angular' object is
still available via an extension property $injector.angular.