Support for X-HTTP-Method-Override Header

The current HTTP method override mechanism is insufficient as it only works when sending form encoded data. This patch adds support for the X-HTTP-Method-Override header to the Request class which allows for overriding the method for any data type (e.g. JSON).

One real world use case is to support patching resources using JSON encoding et. al. on AWS Elastic Load Balancers which [do not recognize PATCH] [1].

[1]: https://forums.aws.amazon.com/thread.jspa?messageID=400724 "ELB restrictions, HTTP PATCH & others"