Repository index caching

Previously an offline buildpack would not work when put into a real
"offline" environment.  This problem was linked to two problems.

The first was with the build and was quite difficult to identify. When
the `bundle exec rake package OFFLINE=true` was run with either
`clean` or `clobber` as well (e.g. `bundle exec rake clobber package
OFFLINE=true`), the cached indexes were destroyed before they could be
added to the package.  This was fixed by making sure that the indexes
were explicitly cached rather than being cached as a side-effect of
finding that JARs that needed to be cached.

The second problem was where repository indexes were looked for.
Before this change, repository indexes were only found in
`Dir.tmpdir`.  This is because the cache has to be put somewhere safe
during detect when the application cache is unavailable.  The problem
was that the cache used by the repository index didn't have any fall-
back immutable caches.  This change updates the repository index cache
so that it still uses `Dir.tmpdir` but also uses the `resources/cache`
folder as an immutable cache.

[#68677262]
Merge 68677262-missing-indexes to master

[Completes #68677262]
JAVA_OPTS from environment variables

Previously, the JAVA_OPTS environment variable was ignored in all
cases.  This change adds support for integrating the contents of the
JAVA_OPTS environment variable when configured to do so.  By default,
the contents will be used, but a change to the config/java_opts.yml
file by a buildpack admin can disable this behavior.

[#64162734]
Merge 64162734-java-opts-env-var to master

[Completes #64162734]
Remove Focus

This change removes an errant :focus declaration
Trial and Error

For some reason Travis is starting to exhibit problems with code that
has not changed in months.  This problem is not exhibited on machines
locally, so I'm changing the code a bit in a trial and error attempt
to fix Travis.
Augment, don't replace environment

Along the attempts to track down the Travis failure, this updates the
application_helper to augment the environment rather than outright
replacing it.
Version updates

This change updates the versions of Rubocop and Yard.  As with most
Rubocop updates, code needed to be changed, and was.
Version Updates

This change updates the versions of 3rd party dependencies.
Package task without git

Previously, the package task required a git repository to work
properly.  It's possible that the package task will be run from an
archive download instead.  This change updates the package task to
handle a non-git repository.

[#69076566]
Merge 69076566-package-without-git to master

[Completes #69076566]
Configurations without nested hashes

With the addition of the `config/java_opts.yml` the offline package
build was broken.  The root cause is that when the packager detects a
configuration without `version` and `repository_root` it then attempts
to inspect the values of the configuration as if they
were nested hashes (like the `config/tomcat.yml` file).  The addition
of the `java_opts` configurations was the first time we've had a
configuration that didn't meet the typical conventions and the
packaging build broke.

This change inspects the values of a non-repository-configuration and
only inspects the values if they are also hashes.

[#69170446]
Merge 69170446-nested-configurations to master

[Completes #69170446]
Improve clean semantics

The difference between clean and clobber in rake is quite subtle and
difficult for most users to grok.  This change makes all created
artifacts (regardless of whether are a scratch artifacts or
deliverables) part of CLEAN.  This means that a user will be able to
run either `rake clean` or `rake clobber` and get the same effect.

[#69170656]
Merge 69170656-improve-clean to master

[Completes #69170656]
Tests

The previous addition of new http environment variables didn't include
enough testing.  This adds that testing.

[#69073918]
Merge 69073918-test-proxy-support to master

[Completes #69073918]
Test Ordering Fix

Previously if the environment was overridden, it was not set back to
its original state properly.  This change updates the
application_helper to work properly.

[#69073918]
Merge 69073918-test-ordering-fix to master

[Completes #69073918]
Unify version detection

A previous attempt at making the package build work without being in a
git repository ended up duplicating quite a lot of code.  This change
refactors that original effort so that it re-uses the BuildpackVersion
logic that already existed.

[#69076566]