dev: refactor: Use `«suite»:«batches»` dict in `Vows.run()`

Out of all possible algorithms for running tests, a mapping of files (test suites) to a set of batches (marked with `@Vows.batch) offers the greatest flexibility for any runner implementation.
new: dev: @refactor Turned runner into a package to allow multiple implementations

Right now, only the old runner (pyvows.runner.gevent) is the only one that works.

However, it passes tests for me, and the ABC class for runners will (in the future) allow pyvows to use the best available means to run tests according to the users’ system.