Massive cutover to python3 (baseline is 3.9.1, but is also tested/working on 3.7.x). This merge is a breaking change for any downstream consumers, as the python 2->3 strings/bytes change is central. Most APIs should still work roughly as intended, as I didn't majorly re-organize the codebase, so most APIs live where they lived before. But a changelog/migration guide will be included in the next PR for this.
This PR will constitute most if not all of the v1.0.0 release that is forthcoming soon.
A lot of cleanup things in prep for a python 3 transition. Getting rid of the old exception syntax, converting prints over to logging, cutting random scraps of code to be proper unit tests, cut away some older bits of code, etc.
This still works in python2. It's just a lot of tidying up. There are no major functionality changes.
* no more xrange
* travis ci
* cleanup per review. And a test to prove that pycparser still works as intended.
* msgpack 1.0 compat and pin requirements