Add support for unit test discovery

See #27.  The original behaviour is preserved.

Its a bit messy around the executor which needs to accept either discovery arguments or a list of test names.