Python3 compatibility fixes.

- change all PyString_* methods to either PyUnicode_* or PyBytes_*
- all strings returned by methods are now unicode,
  with 1 exception: *_repr() return bytes in Python2
- few more methods are able to take input strings as unicode (a228a7ac)
- minimal requirement is now Python 2.6
error string in IPPError is now unicode even in Python2
Revamp module initialization.

And fix some compiler errors.
PyInt_* functions are replaced by PyLong_*
PyFile_AsFile() doesn't exist in Python3
PyObject_HEAD_INIT -> PyVarObject_HEAD_INIT
fix examples & tests
fix *_repr() functions
PyUnicode_AsUTF8() and PyUnicode_AsUTF8AndSize() are for INTERNAL USE ONLY.
Fix PPD_emit*() functions.
Fixed version counting in NEWS.
No, version was right the first time.
Belatedly added changelog for 1.9.65.
Merged python3 branch.
Updated NEWS.
README: Python 2.6 or later is required.