Fix UTF-8 Content-Length bug

cc @IainNZ
Small Refactor

Adds File Upload support. Both chunked/unchunked so technically one can upload
files that are read in asynchronously via another stream. Cool huh? The catch is
that basically all WSGI based webservers have trouble understanding what's going
on (in particualar httpbin.org). Apache should work just fine though and maybe in
a couple of years people will get around to fixing their software, who knows.

This also unifies the query API by recombining the methods for all the HTTP verbs,
the reason for this being that it is technically allowed by HTTP standard to send
request bodies with any of these requests and I think disallowing them for some
would only add to the confusion.

The other major rename is data=>json in the method that takes json as data was
overused for both plain text and json data. Also cc @WestleyArgentum