Changed tooling API provider so that it can deserialize a result whose implementation is not visible to the action ClassLoader.
Added a little more coverage for tooling API actions.
Fix for case where tooling API is used in an ibm jvm to run a build using sun/oracle jvm.
Reworked API for PayloadSerializer so that client can defer the decision about how the remote ClassLoaders should look until after the whole object graph has been serialized.
Don't recreate the ClassLoader for a build action on every request.
Removed unused fields.
Fixed detection of the JDK home dir when running from the JRE dir for Java 5 on Windows.
Fixed in-process Java compilation when running from a JRE installation on Windows (eg when using the `java` executable on the system %PATH%).
Enabled back the CompositeDomainObjectSetTest.

It seems that it was disabled by overlook. Fixed one of the tests.
GRADLE-2873 Fixed issue with conf.extendsFrom and in the composite domain object set.

I'm not sure if the composite domain object set should behave they way I changed it. However, it makes sense from the standpoint of how we use it for the inherited dependencies and the inherited artifacts.
Lowered log level on some messages (info -> debug). Added a TODO.
Added some internal capability that allows to find out whether we're in the long living process (long living daemon). It is needed for the in-memory task artifacts cache.
The in-memory task artifact cache is only used when running with the daemon.