Add context propagation middleware

/to @ritch @bajtos @piscisaureus 
So how about this approach: keep the `http`, `req`, and `res` outside as far as this PR is concerned. Wait for what real-world problems reported by our users (or our work on gateway) and only then start looking into ways how to support these specific use-cases.