router: Added X-Request-Id header to close #66

I realize this is a feature and not a bug, but I hoped it would be worth doing. And it was some low hanging fruit that I could tackle.

router: Added X-Request-Id header to requests sent to backends. Will reuse existing X-Request-Id, if the client supplies it.
router: Added tests to verify X-Forwarded-For will append existing X-Forwarded-For header from the client.
Closes #66.
This will allow external requests to inject a request ID, I don't think we want this.