Don't override 'Content-Type' if set by endpoint

Also add support for 'text/plain' in Accept header
@zachmullen I want to be able to set the Content-Type and not have it overridden. Current if I try to return plain text it get converted to a JSON string so things like newlines are escaped. If there is a way todo this without this patch then that is cool, just let me know how ...