Refactor subclasses of AbstractMakeService: share common methods and classes, drop methods from interfaces we don't implement
Refactor AbstractMakeService and its subclasses: drop TaskRunner - prefer delegation over inheritance. Cluster (set of modules/models to process at once) and MakeSequence (configuration of make steps/sequence of clusters) as high-level abstractions instead of mind-blowing sequence<? extends sequence<? extends IResource>>
Regenerated make.tests
Refactor TestMakeService and BuildMakeService (WorkbenchMakeService pending): extract initializers with knowledge about facet/target properties (wip: need more for the rest of facets); take generation properties from MakeSession, where they already are, do not invent this logic for each make service; less magic around IScriptController - trust caller what he deems appropriate as IConfigMonitor/IJobMonitor (and at least do not do this in a slightly different way in every make service)
Modules are generated in the build via ModuleGenerationHolder and BuildMakeService, and ProjectTest.diffModule expects all files, including trace.info, present
Merge branch 'master' into 3.1/artem/make