Add context propagation middleware

/to @ritch @bajtos @piscisaureus 
> What are your main concerns? For example, `http` context will be abused?

Exactly. Having `http` available makes it easy for developers to shoot themselves in the foot, write code that is strongly coupled with the REST transport and run into troubles later, when they want to use a different transport (e.g. websockets) or run the code in the browser via the isomorphic client.

> In the web server world (loopback is built on top of express), a lot of middleware including passport use `req` as the context object.

Middleware is designed to be used with express and HTTP transport. Model methods are meant to be independent of the transport.