Version updates

This change updates dependency versions.  This update includes an
update to Rubocop necessitating changes to the source code.
Credentials in DownloadCache URIs

Previously the DownloadCache would not pass user credentials embedded
in URI through the request.  This meant that repositories with basic
auth credentials were not supported.

This change ensures that those credentials are now passed through
enabling authenticated repositories.

[#70503862]
Merge 70503862-repository-credentials to master

[Completes #70503862]
Groovy 2.3.+

This change updates the version of Groovy used from 2.2.+ to 2.3.+.

[#70736516]
Merge 70736516-groovy-2.3 to master

[Completes #70736516]
Update web.xml modification for auto-reconfiguration 1.0.0

This change updates the web.xml modification behavior to support auto-
reconfiguration 1.0.0.  The modification no longer makes any change to
the application context configuration XML files or Java classes.  It
now only adds three ApplicationContextInitializers to the
configuration.  In cases where there is no web.xml file, auto-
reconfiguration 1.0.0 will use a web fragment to configure itself.

[#49695439]
Merge 49695439-servlet-3 to master

[Completes #49695439]
Upgrade auto-reconfiguration version

Previously, the auto-reconfiguration JARs for Spring, Play, and Play
JPA were pinned to an old version of auto-reconfiguration.  This
change updates those patterns to use the latest in the 1.x line.

[#71298968]
Merge branch '71298968-service-shading'
Version updates

This change updates the versions of Ruby and the dependencies.  This
time round both rubocop and rspec required extensive changes for
compatibility.
Improve Windows packaging experience

Previously, when the DownloadCache was used on a Windows machine, it
could not read and write files properly.  This was due to it using the
default system encoding which differed from the expected UTF-8.  This
change updates the DownloadCache to always read and write files as
binary in order to get around the encoding issue.

Previously, when files were cached by the DownloadCache, the file
names were escaped to ensure that there were no forward slashes in
them.  On Windows, this escaping is not sufficient, as colons must be
escaped as well.  This change updates the escaping to cover this
additional case.

[#71925232][resolves #53]
Merge 71925232-windows-packaging-improvements to master

[Completes #71925232]
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]