Extract common infrastructure for creating compile tasks

- Task instances are created by infrastructure, configured by plugin
- Common plugin code for C/C++/ObjectiveC/ObjectiveC++
- Separate for Assembler/WindowsResources
- Jvm plugins not yet integrated
- ‘c’, ‘cpp’, etc plugins now simply combine component model with language support.