Explicit tests for model elements with type params.

+review REVIEW-5034
minor simplification.
Validate model element names.

Model element names must be [a-zA-Z_][a-zA-Z0-9_]*

+review REVIEW-5034
Spec tidy up.

+review REVIEW-5034
Have one real implementation of cancellation token in core.

The rest is adapting between core implementation, internal cross-version
interface, and toolingApi interface.

+review REVIEW-5088
- remove internal componentSpecInternal from DefaultLibrarySpec for now
- rename LanguageOutputType to TransformationFileType.

+review REVIEW-5076
update release notes / open spec with changed sources behavour

- use sources in flavors sample build
+review REVIEW-5076
move ObjectFile from org/gradle/runtime to org/gradle/nativebinaries

+review REVIEW-5076
moved checkModel task and its assertions out of the sample into the according testcase

+review REVIEW-5076
GRADLE-3147: Initial test case reproducing the issue. Added spec that lays out test scenarios.
remove debug println +review REVIEW-5076
GRADLE-3147: Fixed formatting.
GRADLE-3147: Further formatting.
'Build script reports all versions tested for dynamic version' story

- Adding support for applying version selection rules to static versions
+review REVIEW-5100
Renamed IvyExtraInfoSpec.put() -> add()

+review REVIEW-5059
'Build script reports all versions tested for dynamic version' story

- Changing dsl from 'any' to 'all'
+review REVIEW-5100
Do not hold lock while calling other code from cancel token.
Cancel callbacks can be removed now.

+review REVIEW-5088
Daemon cancels the build without the lock being held.

+review REVIEW-5088
Fleshed out the next story in the component-metadata spec