Support binary request/response bodies (#57)

Request/Response/RequestTemplate are now fundamentally based on a byte[] body field.
For Request/RequestTemplate, if a charset is provided, it can be treated as text.
For many users of the library, the change should barely be noticeable, as the methods that
were changed were mostly used internally.
There were some non-backwards-compatible signature changes that require a
major version bump, however.
Merge pull request #83 from davidmc24/feature/binary-bodies

Support binary request/response bodies (#57)