Unbreak the build, this is what I get for not using a pull request
Add a test for sending unicode data in http headers
Borrow b() and u() from six
Use u() to be python 3.1 compatible
Accept bytes objects in values for curl options taking lists on Python 3.

Although bytes were handled in text-to-bytes conversion routine,
the type checks rejected bytes which meant bytes were never usable.

Fixes #124.
Do the "encode to latin1, decode to utf8" trick
Do the encode-decode hack only on python 3, on python 2 decode as utf-8
Remove dependency on util
Now encoding fails
Allow Unicode strings on Python 2 provided they only have ASCII code points.

This is the same behavior as what is allowed on Python 3.
Document new unicode behavior on python 2
Update exception messages and a comment to reflect that strings must be byte strings or ascii