Rewrote the test framework

Added automatic discovery of unit tests, which other
frameworks don't do. Unfortunately you still have to
instantiate the TestSet and register it but at least yuo
don't have to register any of it's test functions.