REVIEW-2549: Moved creation of a lifecycle task for binary into LanguageBasePlugin
A bunch of tidy-ups around C++ task implementations

- CppCompile/CCompile
    - Extracted common base class for CppCompile and CCompile
    - Renamed BaseCompileSpec -> NativeCompileSpec
    - Added CCompile to the DSL reference
- Assemble task:
   - Removed 'macros' (if supported, they should be different to the C macros)
   - Added to the DSL reference
- InstallExecutable (REVIEW-2554):
    - Added to DSL reference
    - Use nativeplatform FileSystem.chmod to set executable permissions