Better errors for empty test suites, fixes #104

This PR adds errors for some unlikely boundary conditions, such as tests without test methods, or suites without tests. Otherwise these cause strange errors. 

The class parser is also changed to only match test classes that end with `*Test`. This allows test cases that have helper classes embedded in them, where previously the helper classes would be returned as tests (with no actual tests).
OK.