JUnit 4.
(cherry picked from commit 07280edc95a1341128ba949626b834055a2933fe)
[JENKINS-16301] Replace impl of getDigestOf with standard (Commons Codec) DigestUtils.md5Hex, for simplicity.
(cherry picked from commit 51fbd2d8675fb3703ce38d935e661abf03e1b83b)

Conflicts:
	core/src/main/java/hudson/Util.java
[JENKINS-16301] Use a buffered input stream to get somewhat better performance.
(cherry picked from commit 9d72311ba0222b9d0489605b8ec2cec711690993)
[JENKINS-16301] Verifying current serial format as a baseline.
(cherry picked from commit 8d2e4523368716c82dc7333b4357d21d0dc93526)
[JENKINS-16301] Verifying current load/save implementation can round-trip fingerprints.
(cherry picked from commit 41edc5867ba194fdb06b2e2ffa6b6addfaa99986)
[FIXED JENKINS-16301] Optimized Fingerprint.save.
(cherry picked from commit fff90c100d6b030f86d92cc4f0c23af3c648c75e)

Conflicts:
	changelog.html
[JENKINS-16301] Need to create parent directory of fingerprint file too.
(cherry picked from commit f1b513cf91663498aa1677580776a7c42c7322f2)
[FIXED JENKINS-18178] Reverting an inessential part of the fix of JENKINS-16301 since it broke some Maven builds.
Apparently the Maven 2 process factory fails to adequately insulate the Maven process from Jenkins library dependencies;
if you specify a build extension that can override dependencies used by Jenkins core classes!
A real fix would involve changing class loader delegation, since presumably similar bugs could still occur.
(cherry picked from commit e0a3a1ddf5fa08e80a94a565dd05c39f76de6e93)

Conflicts:
	changelog.html
	core/src/main/java/hudson/Util.java
[[JENKINS-16301] Use a buffered input stream to get somewhat better performance also from Maven archiving.
Introducing Util.getDigestOf(File) as a convenience.
(cherry picked from commit 11953750ab422bcec28d12a436867d0888313aaa)

Conflicts:
	core/src/main/java/hudson/FilePath.java
fixup the mess after JENKINS-18417 JENKINS-16301 JENKINS-18178 cherry-pick