Do not overwrite existing header with POST

Existing 'application/x-www-form-urlencoded' content-type headers are no
longer overwritten when applying POST headers to a request before
sending. This allows developers to set custom attributes on each request
(e.g., charset).

Closes #877
Closes #879