Add support for repair step classes

This also makes it possible to unit test each repair step class individually

Please review @butonic @icewind1991 @bantu 
Use dependency injection: Pass the Connection object as a constructor argument, then call disableQueryStatementCaching() here.