[FIXED JENKINS-21780] DirectoryBrowserSupport.FileComparator should cache isDirectory calls.

(cherry picked from commit d577c0850d10348c92d763309b163223be26f68b)

Conflicts:
	changelog.html
	core/src/main/java/hudson/model/DirectoryBrowserSupport.java
[JENKINS-20534] Avoid usage of temporary file to write symlink.

Creating a symlink is an atomic operation, and additionally
usage of tmp file + rename performs very badly on NTFS file
system because of the way the rename is tracked in the $MFT.

In case symbolic links are not supported, we still fallback to
a regular file.

(cherry picked from commit c0742b8bff9fe407e568da7ed860f30d9ea8aedc)
[FIXED JENKINS-17606] Reuse existing fingerprint action if present.
Prevents multiple FingerprintActions.

(cherry picked from commit be7a97ee32b57dcb27b8fd6c908ebbe451220902)

Conflicts:
	changelog.html
	core/src/main/java/hudson/tasks/Fingerprinter.java
	test/src/test/java/hudson/tasks/FingerprinterTest.java
[FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces.
One key advantage is that this correctly handles the new default workspace location on the master.
Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted.
A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator.
(Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.)
(cherry picked from commit cd526e99e63ae362f2d1ce1a04c3c68a38032a5c)

Conflicts:
	changelog.html