support requests with a binary body

if no content-type is given, or the content-type is either
one of application/json, application/x-www-form-urlencoded,
multipart/form-data or starts with text/ then encode in utf8
otherwise let req.body be a buffer.

This allow for uploading of binary data i.e. uploading of JPEG and PNG images.