Improved samples and user guide for native language support

- Samples use FunctionalSourceSet with name matching component name
- Added sample for custom source layout
Ensure that assembler.args is covered in user guide samples
Renamed samples/cpp -> samples/nativeBinary

- Also renamed cpp user guide chapter
Switched linkerArgs | staticLibArgs to be configured via a "ToolChainTool"

- Really need a better name for that…
- Syntax is now linker.args | staticArchiver.args
Renamed staticArchiver -> staticLibArchiver
Don't use a conventionMapping where it's not required
TODO comments
Update DSL generation so that it handles types with multiple superTypes.
Moved core language support classes for C/C++/Assembler into org.gradle.language

- Code for translating source to native runtime was not moved
   - Next step is to reorganize 'nativecode' package
Moved org.gradle.nativecode.cdt -> org.gradle.ide.cdt
More package reorganization:

- org.gradle.nativecode.base -> org.gradle.binaries.nativebinaries
- org.gradle.nativecode.toolchain -> org.gradle.binaries.nativebinaries.toolchain
Package reorganization

- Renamed org.gradle.binaries.nativebinaries -> org.gradle.nativebinaries
- Moved org.gradle.binaries.language -> org.gradle.nativebinaries.language
Fix setting of arguments on Link/StaticLib tasks
Updated DSL xml files for package renames
Ensure that 'org.gradle.nativebinaries' is considered part of the API

- Took me a while to find that magic setting!
Renamed org.gradle.nativebinaries.language.asm -> assembler
Minor doc tweak
Renamed "nativeBinary" samples to 'native-binaries'
Updated release notes for changes since 1.8 branch