ZConfig wants strings.
Protocol versions are byte strings.
Messages are binary.
Switch to pickle format 3 so bytes and unicodes are not smashed.

Will have to introduce a new protocol version for the new format.
Porting to Python 3: version strings are binary, other compat things.
Fix weird namespace behavior incompatibilities between Py2 and Py3.
Trivial Py3 porting changes: binary data, print functions.
Use Pickle protocol 3 on Py3.