Format backtraces properly

Also add some missing unit tests of Buildpack.

[#53870297]
Merge 53870297- to master

[Completes #53870297]
Fix OpenJDK JRE versions

Previously, Groovy applications that use @Grab were affected by
problems in the _25 version of the JRE.  This change fixes the version
of the JRE to _21 until those bugs are fixed.

[#55382524]
Merge 55382524-fix-openjdk-version to master

[Completes #55382524]
Use Spring CLI TAR file

This change causes the Spring Boot CLI container to use a TAR file
rather than a ZIP file.  This simplifies the extraction process.

[#55377304]
Merge 55377304-spring-boot-tar to master

[Completes #55377304]
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]
Set java.io.tmpdir to $TMPDIR

This is based on an assumption that $TMPDIR is part of the contract
for the droplet execution environment, which is currently
undocumented.

[#52783209]