Immutable CachedFiles

Previously, the CachedFile always behaved as if it was mutable, even
in situations where it was working against an immutable cache.  This
resulted in situations where a combination of intermittent network
connections and read-only file systems would cause an attempted
direction creation that would fail.  This change enhances the
CacheFile such that it can behave in both a mutable and immutable
fashion.

[#71928434][#54]
Merge 71928434-mkdir-immutable-cache to master

[Completes #71928434]
Spring Insight service always available

The Spring Insight framework is different than all of the other
services because it downloads its dependency from the service itself,
rather than from a central location.  It does however honor the
Internet availability flag even though it doesn't go to the Internet.
This caused issues when an offline buildpack was used because it
prevented the proper dependency from being downloaded.

This change adds the ability to _temporarily_ override the value of
Internet availability so that the Spring Insight framework can always
download its dependencies, regardless of the current state of internet
connectivity.

[#70850900]
Merge 70850900-insight-always-available to master

[Completes #70850900]
Add commented-out metaspace entries

This change adds commented-out metaspace entries to the JRE
configurations.  This is being done to help point users upgrading to
Java 1.8 to the documentation about the changes between 1.7 and 1.8.

[#71298674]
Merge 71298674-metaspace to master

[Completes #71298674]
Conditional Basic Auth

Previously, basic auth headers were added to every DownloadCache
request.  In the case where there were no basic auth credentials,
empty strings were used for the username and password.  This was
wrong, although tolerated by the primarily used CloudFront.  This
change ensures that basic auth headers are only added when there are
both a username and password specified.

[#72253796]
Merge 72253796-conditional-basic-auth to master

[Completes #72253796]
Spring Boot 1.1.0

Previously, auto-reconfiguration did not work on Spring Boot
applications.  With the upcoming releases of Spring Boot 1.1.0.RELEASE
and Java Buildpack Auto-reconfiguration 1.0.0.RELEASE, this will no
longer be the case.  This change updates the buildpack to work with
Spring Boot 1.1.0.RELEASE and later.

[#49695439]