REVIEW-3113: Remove obsolete plugin id file
REVIEW-3117: Refactored LanguageSourceSet hierarchy

- AbstractLanguageSourceSet now implements a getSource() and getBuildDependencies()
- AssemblerSourceSet extends AbstractLanguageSourceSet directly
- Renamed AbstractBaseSourceSet to more clearly define it's role
REVIEW-3115: Update spec for future requirement
REVIEW-3119: Ensure iteration order is maintained in language source sets
REVIEW-3138: Add extra (unused) function to library to ensure binary size differs in test
REVIEW-3145: Switched from using a Flavor.DEFAULT instance to a constant name
REVIEW-3178: Moved registration of default ToolChain types onto an internal interface
REVIEW-3199: Simplify toolchain config in test
REVIEW-3226: Tidied up API for configuring tool arguments and defines

- Extracted Tool interface out of ToolChainTool: renamed impl to DefaultTool
- Renamed PreprocessorConfig -> PreprocessingTool: renamed impl to DefaultPreprocessingTool
- Renamed org.gradle.nativecode.toolchain.Tool -> GccTool
- Add Tool to NativeBinary as a real extension (not an extra property)
Added staticLibArchiver property to DSL reference