RF: add (partial?) python 2 compatibility

Make code somewhat more ugly by adding Python 2 compatibility.

I wasn't able to get the citeproc-test set up properly to test this
well.
BF: STYLES_PATH not imported but used
RF: another couple of super()s in formatters/html

These don't work in Python 2.7
RF: another couple of specific open file modes
RF: guard against nasty comparison difference py2

Code is using Python 3-specific type error when comparing lists to an
integer.  Make code explicit.
Make the citeproc-test runner Python 2 compatible

Also includes some other improvements
PyScripter's debug output doesn't have a close function
Restore proper behavior of MixedString addition

__class__ is not the same as self.__class__!
Fixes locale_TitleCaseGarbageLangEmptyLocale and
textcase_TitleCaseNonEnglish2
Some entries should not be parsed as a MixedString
More Python 2 (unicode/str) compatibility fixes

Fixes remaining testcases that did pass in Python 3 and gets rid of ascii
encode errors.

Prefer overriding str to yield cleaner code