Fixes#2216
This was broken when we switched from media-typer to content-type
modules for parsing the content-type header.
The content-type header can handle the field with parameters, but
does not do the type/sub-type parsing that media-typer does.
Our code relied on that extra bit of parsing to correctly
identify if the content should be parsed to String or kept as
a buffer.
The fix restores the use of media-typer, but using the result
of the content-type module to make sure it valid