Began refactoring the Service module to make it simpler to operate and test.

- Removed driver and cache from the Configuration class.
- A ServiceMetadataFactory is now supplied directly to the ServiceManager class, rather than being constructed within the ServiceManager using a Configuration object.
- The ServiceMetadataFactory class now accepts a driver and cache directly in its constructor. Previously these would have been accessed from a Configuration object.
- Reworked unit tests to accommodate the above changes.
- Added a getServiceMetadataFactory() method to the FunctionalModelTestCase class. This contains code removed from the BaseTestCase class, as it is only used for the functional tests. It provides metadata for the model test fixtures.
- ServiceManagerTest now inherits from FunctionalModelTestCase in order to use the above method. This better reflects the current status of the ServiceManager tests as functional tests.
BaseTestCase is now designed for pure unit tests. ResourceMetadataFactory and ServiceMetadataFactory now extend FunctionalModelTestCase until they are rewritten.
Merge branch 'refactor/service-configuration'