Rewrite the checker

Improvements:
* Support for multiple test cases per challenge
* Challenges are defined in a concise data structure
* stderr from running solutions is hidden by default
* Specify a name on the command line to:
    * check only that user's solutions
    * print detailed information when failures occur

Note: It calls "python2" now instead of just "python". I think this
should work on everyone's systems, but feel free to change it back if
not.