py: Raise TypeError when trying to format non-int with %x,%o,%X.

This behaviour follows Python 3.5 standard (in 3.4 it's a
DeprecationWarning which we'd rather make a TypeError).
modgc: Implement return value for gc.collect(), enable on Unix.
Figure out the test_name before using it (significant only to Travis skips)
Turn the Travis CI test skipping mechanism into something more generic
modgc: 64-bit cleanness.
modgc: Real 64-bit cleanness.
Fix str.modulo when precision is specified.
Merge pull request #668 from dhylands/print-prec

Fix str.modulo when precision is specified.
Merge pull request #667 from Rosuav/testfixes

A couple of small fixes to run-tests
objint: Fix corner case in buffer access.
Add PEP 393-flags to strings and stub usage.

The test suite all passes, but nothing has actually been changed.
Update comments - now aiming for UTF-8 rather than PEP 393 strings
Beginnings of UTF-8 support - construct strings from that many UTF-8-encoded chars, and subscript bytes the same way
objstr: Record character length separately from byte length

CAUTION: Buggy, may crash stuff - qstr needs equivalent functionality too
HACK - When indexing a qstr, count its charlen. Stupidly inefficient but POC.

All tests pass now, though string creation is still buggy.
Make len(s) return character length (even though creation's still buggy)
Add test of UTF-8 encoded source file resulting in properly formed string
Add character length to qstr