cleanups to the runners and runner tests

This cleans up the runners and their tests and gets them up to
our latest conventions.  Some things were missing tests, things
were not organized consistently, etc.

There are no behavior changes here, just cleanups.

/cc @jcredding