(PE-6019) Encode string request body per Content-Type header

This commit encodes a request body string per the content of the
Content-Type header.  In the event that no charset is specified in the
Content-Type header, the charset is set to UTF-8.  Previously, the
request body string was always encoded to ISO-8859-1 and was not
necessarily in sync with the value of the Content-Type header.
This was unrelated to the core work on the PR but thought I'd fix it since it seemed really simple.  If `origHeaders` had a different casing for the header, e.g., "Accept-Encoding", this code would have blown away that header and replaced with one with the "gzip, deflate" value.  If we compare after the `toLowerCase()`, the value should be interpreted appropriately.