Renamed class.
Use the client's ClassLoader to deserialize the build action's result, so that the result is assignable to the type that the client is expecting.
Replaced ClasspathSource with a more general ClassLoaderVisitor to allow a ClassLoader hierarchy to be inspected.
Allow the tooling API build action results to reference tooling models

- Fixed the BuildController implementation so that it runs the action after the build has been configured but before it has been cleaned up.
- Fixed the provider's serialization mechanism to handle object graphs that span multiple, isolated ClassLoaders.
- The serialization stuff is somewhat spikey, will clean up.
Changed the build action int test to use build actions and models implemented in Java instead of Groovy. Also some coverage for actions that fetch and return multiple tooling models in a single operation.
Javadocs.
Added some test cases to the tooling api spec.