Copy to staging location

This is the first step in an effort to create a way to build offline-
only buildpacks.  This first step creates the Rake tasks required to
copy important files from their source locations to a staging area.

[#67851786]
Create offline TAR file

This is the second step of the effort to create offline buildpacks.
This change creates a TAR file from the staged files.

[#67852576]
Download latest dependencies

This is the third step in an effort to create a way to build offline-
only buildpacks.  This change uses the buildpack's DownloadCache and
VersionResolver to populate a cache in the staging area.  This cache
contains the latest version (as identified by the configuration) of
all of the dependencies that might be used by the buildpack at
runtime.

As this logic was so complex, this and the other offline build tasks
were broken out into their own Task classes.

[#67851722]
Disable remote downloads

This is the fourth step in creating an offline buildpack.  In this
change, the config/cache.yml file is modified to explicitly disable
remote downloads.

[#67851760]
Remove GlobalCache

This is the fifth step in creating offline buildpacks.  This change
removes the GlobalCache as it will now, never be used.

[#67852314]
Look to buildpack local cache

This is the sixth step in creating an offline buildpack.  This change
causes the ApplicationCache to look at a local location
(resources/cache) for resources when it cannot download them.

This simple requirement led to extensive changes to the DownloadCache
implementation.  The changes mostly had to do with removing code that
causes filesystem locking for cached resources.  Since the cache can
no longer be shared between processes (there is no global cache) there
was no need for the added complexity of the filesystem locking.  In
addition, the behavior around detecting when the network was
unavailable was overly complex.  This change eliminates all excess
calls to determine connectivity, instead using the needed calls to
determine it.

[#67852466]
CodeClimate fix

This change removes duplicated behaviors to satisfy CodeClimate.
Indicate that a file was retrieved from the cache

Previously, when a file was retrieved from the cache, it displayed a
very short download time (most likely 0.0s).  While this was true and
properly hid the fact that caching was happening, some users were
freaked out by the lack of knowledge about the cache.

This change indicates (using a 'found in cache' message) that a cached
file has been used.  If the file is downloaded it continues to display
the download time as it always has.

[#67662796]
Package task

This change adds a `package` rake task to the buildpack.  This task
creates a .tar.gz of the buildpack, suitable to use with `cf create-
buildpack` and `cf update-buildpack`.  The task is configurable
allowing the user to change the version string embedded in the name of
the output file.  It can also be configured to create an offline
buildpack which embeds the latest version of its dependencies and
disables remote downloads.

[#67852640]
Merge branch 'offline'