Added composite test structure

Added a new abstract class, Test, from which both TestCase and
TestSuite inherit (composite pattern). TestSuite objects may now be
composed of both TestCase and TestSuite objects.