Separate macro definitions for C & C++ compilers

- Macro support is added to NativeBinary only when supported for language
- Macro methods are namespaced by 'cCompiler', 'cppCompiler'
- define method now takes a single macroName, or a name + definition
Test for library containing mixed C/C++ sources and headers
Added story for auto-creation of a functional source set per component
Some unit test coverage for Compile/Assemble tasks
Added string id for NativeBinariesPlugin
Update spec for current status of 'c compile' story
Updated spec for current state of Assembler support
Moved setting of default flavor into a project configuration action
Simplify setting of default tool chain when none is configured

- Removed logic for removing ToolChainRegistry defaults on first explicit addition
- Configuration action calls ToolChainRegistry.addDefaultToolChain() is none is already configured
Added c++ test app for an exe using a library which uses another library

- New test that demonstrates broken resolution of flavours in this case.