Only apply source directory conventions as a default

- If a srcDir is explicitly configured, don't apply the source convention
Minor improvement to sample to avoid linking unused source set to binary
Test that custom layout replaces conventional default source locations
More test coverage for native binaries plugins
Improved HelloWorldApps and generic language tests

- Tests no longer apply plugins for unused languages
- Tests no longer configure the cppCompiler when cpp isn't used (and same for c)