Handle buildpack not in a git repository

When the buildpack is not in a git repository, issue an appropriate
debug log message and prevent 'fatal' standard error messages from
appearing.

Improve test coverage of Buildpack class.

[#55742000]
Merge 55742000- to master

[Completes #55742000]
Support no external connection

Previously, the download cache (and everything build on top of it)
depended on a working connection to any repository used by it.  This
caused issues as one of the supported use-cases is that the buildpack
needs to run without having access to the internet.  This change does
not modify the fundamental behavior of the cache (it still makes a
call looking for 304s).  The change does make the cache behave better
in the face of not being able to connect to a repository.  It does
this by re-using the cached object if an update cannot be completed
successfully, and failing with a more descriptive error message in the
case that a first-time download cannot be completed successfully.

[#54290822]
Merge 54290822-no-external-connection to master

[Completes #54290822]