This code path was obviously not tested on Python 3 because it
blew up in several places due to str/bytes mismatch.
For internal code, we normalize paths to bytes.
For code calling into coverage, we normalize paths to str,
which is what coverage seems to expect.
After this, run-tests.py -H works on Python 3!