Accept bytes for list options and Unicode on Python 2

This makes pycurl actually have the documented behavior of accepting bytes for list options like http headers. Previously, type checks in setopt failed calls passing bytes even though bytes would have been accepted by string conversion functions further down the chain.

Added tests giving ascii and unicode, encoded and not data to pycurl as headers.

To make these tests work on python 2, C extension was modified to have the same unicode-to-ascii conversion behavior on python 2 as it does on python 3.

Fixes #124 but see #132, #133 and #130 for follow-up work.