Re-integrate the Python 3 Computer Janitor refactoring branch for now. The code itself lives in ~computer-janitor-hackers/computer-janitor/py3refactor and will eventually be ripped out of here, but for now, this unblocks other folks.
Still getting test failures in `bzr bd -S` though.