Split up the tooling api ClassLoader setup into the stuff that is used in the client to receive model implementations and stuff that is used in the daemon to receive action implementations. This will allow us to do different stuff on either side.
Added toString().
Update daemon registry before sending result back to client.

This avoids the case where the client immediately attempts another request upon receiving the result and starting a second daemon because the registry still indicates that the original daemon is busy.
Some int test coverage that tooling api build action classes are reused across operations in the daemon.
Split up TestableDaemon fixture into a piece that understands the log file and another that uses the registry. Use these both of these consistently when asserting that a daemon is idle/busy/stopped.
Some further test coverage that an idle daemon is reused in preference to starting a new daemon.
Tweak test coverage to assert that daemon is idle once the build client has finished, rather than becomes at some point later.
Javadocs.
Added a specific daemon-side factory for tooling api payload ClassLoaders. Doesn't do anything special yet.
Added another potential cancellation point to spec.