* component registry shutdown() now cleans up the component list
this ensures that no old components are left when running unit
tests.
* Added class BaseTestCase that all tests that create components
should inherit from. It verifies the compoent list before and
after the tests are run.