Don't test private methods
Reduce class dependencies for Solver class
Cleanup Connection class name

Make sure the Connection classes inherits from ConnectionBase
Cleanup BuildSystem class name

Make sure the BuildSystem classes inherits from BuildSystemBase
Update unit tests to all class changes