added convenience code to dump performance counter numbers
Track the effectiveness of prefetch in performance counters
doc improvements
Improved the prefetch caching

When prefetch3("Foo") returns a bunch of referenced classes, the classloader that should memorize the prefetch isn't the initiating classloader, but the classloader that will load Foo. This is because it's the effective classloader of Foo that will resolve its referenced classes.

This code fixes that problem.
Bug fixes

- wrong performance counter was updated
- serialVersionUID was missing
- more logging
Added an annotation to make a remote all asynchronous
Merge branch 'master' into prefetch-JENKINS-15120
Combine jar retrieval and class image fetching

The previous iteration of the classloaing improvement favored retrieval
of whole jar file over the individual class file image transfer such
that a jar retrieval was necessary even if a single class is being used.
This penalizes the first connection by requiring a large amount of data
download even for a simple task.

In this change, we restore the balance a bit by making the jar file
loading a background activity. IClassLoader.fetch3() sends the image
of the class file along with the jar file checksum, until the remote
side confirms that it possesses the said jar file.

The jar file downloading will be done using a single background thread
and the queue.

In this way, the activity that triggered a remote class loading can
proceed without getting blocked by the jar file retrieval.
bug gixes
Fixed up all the loose ends.
Use AntClassLoader to close all open files before we delete temporary files.
Merge remote-tracking branch 'origin/prefetch-JENKINS-15120' into prefetch-JENKINS-15120