Support specializing property types when subclassing managed model types

+review REVIEW-5265
Split out ‘well-behaved-plugin’ test to ensure that we test with an empty build directory

+review REVIEW-5246
Reinstate some previously ignored test coverage due to model registry changes.

+review REVIEW-5264
Mark off some completed stories.
Add story for attaching non managed types to managed types.

+review
Add support for declaring unmanaged properties of managed properties.
Stop PlayRun task gracefully

- listening for ctrl+d input to stop the play application
- open issues:
	- integration tests not running in daemon mode as DisconnectableInputStream reads input eagerly.
	- should have central place for dealing with userinput (probably a later story)
	- currently daemons InputForwarder stops forwarding after receiving ctrl+d command, means
	that after stopping the PlayRun task using ctrl+d no other stdin of a build is forwarded

TODO:
	- verify behaviour on windows

+review REVIEW-5261
Enable PlayRun related integTests no windows

+review REVIEW-5261
reorganising scala related sources

- invert dependency between scala and scala-lang subproject
	- scala now depends on scala-lang
	- kept public classes in same packages for compatibility reasons

+review REVIEW-5273
Use PlatformScalaCompile task in PlayApplicationPlugin

- keep exact scala version in play platform.

+review REVIEW-5273
DefaultTask based task implementation opts in to parallel execution via annotation

+review REVIEW-5286
Added test coverage for querying metadata artifacts.

+review REVIEW-5282
Simplified toString() implementation.
Added some additional verification for TestNG parallel test execution.
Inject a `TimeProvider` into the various test processors and result handlers that need to take timestamps.
Changed TestNGTestResultProcessorAdapter to generate start/complete events for TestNG suite execution, and removed the synthetic event generation from TestNGTestClassProcessor.
Changed ClassLoaderCache to handle `null` parent ClassLoader.
Changed JUnitTestFramework to use the ClassLoader cache to load up junit instead of creating the ClassLoader itself.
Moved validation of TestNG `configFailurePolicy` from the test processor to the test framework. This means the task will fail early when the requested policy is not supported, rather than attempting to start workers and run tests.
Added some coverage for some more TestNG test events.