Introduce ClassLoaderScope.

Attempts to model the class loader relationships more explicitly, and encapsulate class loader creation. It also allows lazy classloader creation (in a more obvious way than before) which allows short circuiting in the classloader hierarchy.
Clean up a bunch of TODOs that are obvious, specced or irrelevant
REVIEW-4054: Added WindowsResourceCompile to DSL doc
REVIEW-4066: Restrict TargetedNativeComponent.targetXXX methods to accept string parameters only
REVIEW-4046: Use TestComponent to list sources that should appear in VSProject
Fixed RelativeFileNameTransformer so that it creates a minimal relative path.
REVIEW-4041: Don't assume a limited set of native binary subtypes
REVIEW-4106: Added WellBehavedPluginTests for native binary plugins
Script plugins use a child class loader scope of the base.
Reshuffle ivar setting order.
Project plugin registries should be based on the project's class loader scope.
First pass compile of scripts should include buildSrc classes.
Imports.
Assume poms with packaging 'pom' always have a jar associated with them (remove HEAD request to check)
Test fixes.
added further api mockups for javadoc/sources story
Fix RelativeFileNameTransformer on windows
Sort the source files in the VisualStudio ProjectFile fixture for consistent test results.
updated api mockups for javadoc/sources story
Simplify ScriptAware.