"no internet" configuration and download cache improvements

Add a cache configuration file and document its settings without
specific reference to the download cache or the read-only buildpack
cache as these are really design details and may change in the future.

Validate the cache configuration and implement the enabled and
disabled remote downloads settings.

Change the "no internet" test so that it happens under the first
DownloadCache.get request using the supplied URI. This avoids the
download cache using a hard-coded URI that could go stale in the
future. It also avoids the need to setup a WebMock stub in the
spec helper.

Cache the internet availability in a thread-safe manner in a class
variable.

Raise an explicit exception if we look in the stash, but cannot find
what we are looking for.

Beef up the specs to fully test the download cache and to adjust them
for the new download cache behaviour. This affects the application
and global cache specs too.

[#56854324]
Merge 56854324-no-internet-configuration to master

[Completes #56854324]