Fix bug with not being able to POST query string and form data at the same time.

If you're POSTing with a body and a hash of data, we use the hash as the query string and
POST with the body.

If you're POSTing without a body and a hash of data, we promote the hash to params
and push that down to libcurl to handle as it sees fit.  This allows us to let
libcurl handle all our multipart form data shit for us.

There's probably a better fix to this altogether, but for now to support the use-case
that was broken and the use-case that we started supporting, this seems to be the best
change for now.
Merge branch 'fix-post-query-params'