Various improvements to the testing framework

Fixed some trivial bugs; improved error handling and error reporting; add
regular users to Critic when installing; add support for setting up a
temporary work copy on the host side for communicating with the guest
system's Git repository; add __main__.py to support running as "python
-m testing" instead of "python -m testing.main".
Add basic "create review, then push commit to it" test

This test catches the regression that 650cf3d1 fixed, and gives some
amount of code at least basic testing.