Add request feature detection

* Add several tests for each request property available on the HTTP
  interface.
* Add support for request abstractions such as Koa and Express.
* Improve error handling for malformed or incomplete request objects.
* Add support for `X-Forwarded-Port` for more robus HTTPS detection.