Remove python3-only ChainMap, keyword-only args

Use mock if unittest.mock is not available
Use python2 compatible unicode __str__
Use python2 super(), subclass mixin from object