Handle request to recode form data with bad content type
Handle request to recode form data with bad content type

Prior to this change we were treating this as an error, which is not
consistent with the HTTP 1.1 treatment of Content-Type [1] which calls
for the recipient to handle the request by either assuming a content
or otherwise inspecting the body to determine its type.

This change submits the raw request body along with its reported
content type to the callback in the form:

    {error, {content_type, ContentType, Body}}

This pattern breaks with the Erlang convention of differentiating
error from normal results using tagged tuples. In retrospect we should
have submitted successfully decoded form data as:

    {ok, Data}

To preserve compatibility with existing code however, we're retaining
the old interface of submitting decoded data as an untagged property
list. This is not the correct interface, however, as it requires
callbacks to inspect the type of the data argument using the is_list
BIF.

We should consider deprecating the current interface and introduce the
new interface using an alternative app response - e.g.

    {recv_form_data2, Env}

[1] https://tools.ietf.org/html/rfc7231#section-3.1.1.5

gar1t/psycho