Support staged Play applications

Play support the ability to package an application to be run "in
place". In that case the "start" script ends up in the "target"
directory and the Play JARs end up in "target/staged". So allow
"staged" as a synonym for "lib" in the Play framework detection logic.

[#51899933]
Merge 51899933-staged to master

[Completes #51899933]
Fail if JAVA_OPTS configures memory

Previously, a user could configure memory regions using the preferred
JRE method, or using JAVA_OPTS directly.  Configuring the memory via
JAVA_OPTS bypassed the balancing calculations done in the JRE memory
heuristics and caused problems.  This change causes the JAVA_OPTS
framework to raise an error if a user tries to configure the memory
regions there, and directs them to use the JRE configuration instead.

[#52684917]
Merge 52684917-exclude-memory-settings to master

[Completes #52684917]
Add links to new builders

Previously, the new builders were not documented in the main buildpack
documentation.  This change adds links to those repositories.

[#52706167]
Merge 52706167-builder-repositories to master

[Completes #52706167]
Typo

This change fixes a typo in the memory documentation.

[#52706217]
Merge 52706217-typo to master

[Completes #52706217]
Capitalize Java

Java is a proper noun when used in our documentation.  This change
ensures that it is capitalized properly.

[#52706181]
Merge 52706181-capitalize-java to master

[Completes #52706181]
Update diagnostic logging

This change includes a number of improvements to the diagnostic
logging.  The first is that the logs are no put into the
.buildpack_diagnostics hidden directory.  This is a visual indicator
that the content is contributed by the buildpack and not the user. The
second improvement is that logging is now formatted such that each log
message has a time and title, followed by an indented payload if there
is a payload.  Finally, the logging code has been refactored out into
a utility class.

All of this is simply a work around until a reasonable logging
framework is provided by Cloud Foundry core.

[#52706275]
Merge 52706275-hidden-diagnostics to master

[Completes #52706275]
Remove the use of $HOME

Previously, the killjava script was referenced using $HOME.  This
change removes that usage and instead refers to it relative to the
current working directory.  In addition, some minor improvements were
made so that the directory that the killjava script was placed in, was
not hardcoded.

[#52706435]
Merge 52706435-remove-home to master

[Completes #52706435]
Copy killjava to appropriate location

Previously, the killjava script was not being copied to the
appropriate location.  This change ensures that the directory it will
be copied into exists and copies the file to the correct location.

[#52706435]
Merge 52706435-copy-location to master

[Completes #52706435]
[#52324579]Add migration guide

The migration guide documents how to migrate from the previous Java
buildpack.

The migration notes include intentional migration impacts and some
features which are still required to bring the new buildpack up to
parity with the old buildpack. The latter are flagged as temporary
restrictions.

Note in the OpenJDK documentation that $MEMORY_LIMIT is not yet
passed to the buildpack.
Merge 52324579-migration-guide to master

[Completes #52324579]
Support deploying zipped Play applications

Extend the searching for Play applications to include both the
application root directory and all its immediate subdirectories.

If no suitable directories are found, no Play application is detected.

If more than one suitable directory is found, throw an exception.

If precisely one suitable directory is found, use it.

[#52707661]
Merge 52707661- to master

[Completes #52707661]