Native language plugins do no more than register a language

- Creation of compile tasks for language is in NativeComponentsPlugin
- Not yet pushed down into general component infrastructure
Infrastructure creates tasks for JavaLanguage and JvmResources plugins
Create source transform tasks by model rule
Check if a binary is buildable when constructing
Use a model rule to create test tasks
Refactor creation of native link/createStaticLib/install tasks to be more rule-like

- Cannot yet switch to rule as this will break user code that adds tasks that are dependencies of binary.tasks.link