Py2/3: remove comment "# cython: language_level=3" which breaks Py2
Py2/3: Restore Py2 compatibility for option valuation example
Add a wrapper for converting Py2/3 unicode strings and Py2 byte-strings to C++ strings
Py2/3: basestring -> str

* This requires that native strings be passed into these functions. This could
  be relaxed to accept byte-strings on Py3 or unicode strings on Py2 too, but
  these cases would need more testing and workarounds.
Py2/3: Define string properties as native Python strings, not always bytes