Provide a node-friendly $httpBackend implementation.

As well as allowing the app to make use of the http and https node modules,
this allows us to keep track of what requests are outstanding so that we
can wait for them to complete before we flush our main HTTP response.
Watch for the route change events and react to them.

This allows us to do two interesting things:
- return a real 404 if a routeChangeError occurs
- capture the resolved locals out of the route object

The latter of these isn't used for anything yet, but later we will return
these as part of our response so that the app running in the browser
can avoid the additional round-trip to look the same stuff up again.