runners: have base runner take args and set its readers

This reworks how the runners set the necessary base runner attributes.
This makes for a more uniform API across the runners.

This is also prep for adding in a `DeasRunner` that takes args in
this manner.  The `DeasRunner` is the future counterpart to the
test runner and will be added to transition off of using sinatra
at the runner level.  The sinatra runner will subclass the deas
runner and then we can start porting logic out of the sinatra
runner and into the deas runner.

This is the first step towards that setup.