classloader caching - support empty dirs on classpath

Fixed a problem with classloader caching where the empty directory on classpath was not correctly supported. Added coverage.

+review REVIEW-5219
daemon hygiene spec updates
Simplified the test a bit.

+review REVIEW-5219
Improved the test fixture.

+review REVIEW-5219
Caching classloaders - more coverage

+review REVIEW-5219
Caching classloaders - coverage

Document behavior when parent project build script changes.

+review REVIEW-5219
Caching classloaders - improved test fixture

+review REVIEW-5219
Caching classloaders - more coverage

Documented the behavior for buildscript classpath dependencies change for root and subproject.

+review REVIEW-5219
Caching classloaders - more coverage

The buildscript classpath dependency entry is removed or modified.

+review REVIEW-5219
Caching classloaders - more coverage

Refreshing classloader on classpath directory change.

+review REVIEW-5219
Caching classloaders - more coverage

The buildscript classpath dependency jar entry is replaced by dir (and vice-versa)

+review REVIEW-5219
Caching classloaders - more coverage

Init script change does not incur classloader refresh.

+review REVIEW-5219
Caching classloaders - more coverage

Settings script change does not incur classloader refresh.

+review REVIEW-5219
Caching classloaders - more coverage

A change in a build script that does not impact bytecode (e.g. adding a comment) does not incur classloader refresh.

+review REVIEW-5219
Caching classloaders - integ test coverage

Added integ test coverage according to the spec. Documented some coverage items that needs discussion.

+review REVIEW-5219
Updated test description in the perf test

+review REVIEW-5219