Fleshed out some javadocs.
Replaced ResolvedComponentResult.publishedAs with moduleVersion.
Updated spec to reflect recent changes to API.
Some typos.
Added ScriptClassLoaderProvider.addParent() to allow parents for the script class loader to be declared prior to creation of the script class loaders.
Moved creation of ScriptClassLoader to DefaultScriptHandler and decoupled everything else from ScriptClassLoader.
Changed DefaultScriptHandler to attempt to create the fewest number of ClassLoaders given the script classpath and parent ClassLoaders.
A partial fix for performance regression when compiling scripts. Problem is still there when scripts use the new plugins { } block.

Solution is to defer creation of a project's script class loader until after the script's class path has been finalised, so that the simplest class loader graph can be created to meet the requirements declared in the script.
Removed unused method.
Some int test fixes.
Fix for unit test on java 5 and ibm jvm.
Fleshed out some release note items.
Renamed 'BuildComponentIdentifier' to 'ProjectComponentIdentifier' and 'BuildComponentSelector' to 'ProjectComponentSelector'.
Javadocs.
Removed an interface that wasn't really useful. Some tidy up.
Small tidy up.
Fixed the build progress logger a bit (some loggers may not have been cleaned up).
Attempted to fix the progress reporting for parallel build.

1. Made certain events consumed by the progress renderer hierarchical, so that they understand the parent. This way, we can render the hierarchy of statuses instead of keeping track of incoming events in a list and assume the hierarchy. The next few commits will take advantage of this new feature.
2. Progress logger factory maintains hierarchies of process logger based on the current thread. So, it assumes that single hierarchy belongs to single thread. I don't like it very much but I couldn't come up with anything better. Perhaps we need to make the hierarchies more explicit in the API. Perhaps it's good enough for now (seems better than it was).
3. Keeping of the hierarchy is lenient at this stage. E.g. it's possible to complete the parent operation without completing the child. In the next steps we probably should decide whether this scenario is tolerable or not. If not, we probably need to change the progress logger factory API so that it's not possible to have incomplete operations.
Status / progress bar uses events hierarchy to render the progress

1. This improves the parallel build behavior. It is still not completely pretty when parallel build runs because we're missing the Building 23% progress info. The fix for this comes next.
2. If the parent was not registered yet or completed, this scenario is tolerated currently. It needs to be revisited when we decide on the strictness of the general algorithm.
Improved the status / progress message for parallel build.

1. Now the 'Building 25%' is shown for the parallel build, too. The task execution listener explicitly declares the parent of the progress loggers.
2. I'm not very happy with progress logger changes, it feels there should be a simpler and more explicit implementation. Please review.