Force HTTP method to POST when trying to make a GET with body data

While GET with body data is allowed by the HTTP 1.1 RFC, the server is
not allowed to vary the response based on the body data.  GET requests
must be identified by URL and query params only.  While ES handles JSON
query data stuffed into GET bodies just fine, such requests are
non-compliant and other servers don't handle them well.  In particular,
caching layers (such as Fastly) ignore GET bodies.  ES appears not to
care about GET vs. POST requests when I tested search endpoints.

This should resolve issue clintongormley/ElasticSearch.pm#47.