Enhance POGO detection

This change enhances the POGO detection algorithm so that it can
detect POGOs that extend or implement other types.  This change also
extracts a collection of Groovy utilities (currently centered around
detection) that are used by both the Groovy container and the Spring
Boot CLI container.

[#54518072]
Merge 54518072-pogos to master

[Completes #54518072]
Cache grapes locally

This change causes the Spring Boot CLI container to look for and cache
grapes locally in the application's directory.

[#54518442]
Merge 54518442-local-grapes to master

[Completes #54518442]
Use floating point for MemorySize division

Using whole number division resulted in close to default memory size
warnings in cases where the memory size was far from the default.
Using floating point division instead fixes the problem.

Add diagnostics and extra tests.

[#54997812]
Merge 54997812-inappropriate-default-memory-warning to master

[#54997812]
fix typo
Support profiles in Spring Boot CLI

This change adds documentation to the Spring Boot CLI and Tomcat
containers indicating the proper way to use environment variables to
set Spring profiles.  In addition, this change provides the current
environment (minus some well-known) keys to the components.

[#54518518]
Merge 54518518-spring-profiles to master

[Completes #54518518]
Make compile and release robust if detect fails

Compile and release now log errors if no application is detected.

[#53862463]
Merge 53862463-compile-release-robustness to master

[Completes #53862463]
Abort when compile or release fail to detect an application

[#53862463]
Merge 53862463-compile-release-robustness to master

[Completes #53862463]
Unify compile/release diagnostics

Rather than log an error and abort, raise an exception so that the
general exception handling in a calling stack frame will be used.

This reduces the amount of code and also provides a suitable
exception stack trace when debug logging is enabled.

[#53862463]
Merge 53862463-compile-release-robustness to master

[Completes #53862463]
Refactor large method

[#54205148]
Merge 54205148-reduce-method-complexity to master

[#54205148]
Refactor complex method

[#54205148]
Merge 54205148-reduce-method-complexity to master

[#54205148]
Link to general configuration

Also some frameworks referred to themselves as containers. This is
fixed.

[#54984734]