Cleaned up formatters and the interfaces to make more modular.

* Now the reporter does not need to be ready until the tests start.
* All direct communication between the reporter and the test is brokered through the "bus" that was added to the extended module
* The TAP reporter now respects filters when reporting the number of tests at the beginning
* All publishing from subclasses of the interfaces has been abstracted up a level to the test.
More refactoring

* Pulled tdd and bdd into individual files instead of modules
* Update html reporter and tests
Added linking of tests in and filtering of tests through query params
updated readme with new `run` information
Added support to test timeouts(max duration of inidividual specs)