Improve curl_httpclient so it supports custom methods with payload.

Before this, no custom method (e.g. PATCH) could add a body to the CURL request.

According to the RFC-6902, PATCH is supposed to accept payload:
http://tools.ietf.org/html/rfc6902

The implementation is generic, in the sense any custom method can have a payload (before, none could).
You shouldn't need to override fetch() here; I think the only thing you need to do is pass allow_nonstandard_methods=True as a keyword argument when calling self.fetch (if I'm understanding this override correctly).  Is PATCH still counted as a non-standard method?  It shouldn't be any more.