Fixes test discovery bug #1

This pull request fixes a test discovery bug, and also adds cancellation, progress reporting, and a few other nice features.

This pull request has *grown* since I filed it. I guess I set the origin branch to the wrong thing or something.