Plugin interface

A plugin interface that may actually make sense!

Pretty much implements #16
@cournape After our brief discussion on not being able to have command line arguments for the test runner plugins, I realized that at this point where I initialize the plugin arguments, the test runner plugins (or at least their classes) have already been loaded.

The only barrier to adding the options is finding a way to avoid naming collisions.

Currently the option to select the runner plugin is with the `--haas-runner=<name>` option. We *could* add options like `--haas-runner-<name>-<option>`, e.g. `--haas-runner-parallel-processes=5`, but those are a bit long...