All marshaling is working by supported pythons (26, 27, 33, pypy).

Have taken the approach of replacing methods at module load time (using if six.PY2). Much of this has been required where the assumption has been made that strings are not unicode, this of course is not true of Python 3