large refactoring of SPIs and test code (see details)

- RepositoryService now final class 
- AbstractService retracted because no longer needed
- RepositoryService tells clients can types it can take/return
- RepositoryService has ServiceProxy SPI
- ServiceManager is ServiceInspector with query facilities
- replaced TestRepo with general mock-based facilities for testing
- added many more tests