killjava script and diagnostic improvements

Locate killjava script relative to $HOME. The application directory
path is not the same at droplet execution time as it is when the
buildpack runs, so it is necessary to use $HOME at droplet execution
time.

Tidy up killjava script to format messages more cleanly and ensure
they are flushed synchronously.

Use correct encoding for empty string. String.new produces an empty
string which is encoded with ASCII-8BIT rather than UTF-8. Use ''
instead since this is encoded with UTF-8. The net result is that
logging certain hashes now produces human-readable YAML rather than
YAML containing binary.

Make Buildpack.log flush each write

[#51899933]
[#51561265]
Merge branch 'oom-fix'
Document killjava script
Fix failing test

The -XX option got out of step with the testcase.

[#51561265]
Improve killjava

Improve the regex used to match processes. Also log the process
tree before and after issuing the kill command.

[#51899933]
Improve Play detection

As well as a start script, a Play application now also needs a
suitable Play JAR in the lib directory.

Add Play to the README.

[#51899933]
Merge 51899933- to master

[#51899933]
Fix Play documentation

[#51899933]
Merge 51899933- to master

[#51899933]
Test detection when no containers match

The JRE detect result (which is always non-nil for OpenJdk.detect)
does not determine the outcome of the buildpack's detect. There must
be at least one container which returns non-nil from detect before the
buildpack's detect will return any tags. Add a test to check this.

[#52289857]
Merge 52289857-improved-detection-logic to master

[Completes #52289857]
Reduce code duplication for code climate

[#52541875]
Merge 52541875-code-climate to master

[#52541875]
Rename Java options config file

The configuration file name must conform to the corresponding class
name.
Improve java opts doc
Write diagnostics to system out instead of log

Since buildpack failures will abort the push, the buildpack
diagnostic log will not be available after the push, so system out
is a better way of providing diagnostics to the user.

[#51900599]
Support java-main arguments

Add support for command line arguments to the java-main container.

Improve the way java-main constructs the return value of release so
that extraneoous spaces are not added.

Document arguments configuration parameter and improve the layout of
the java-main documentation.

[#52116083]
Merge 52116083-java-main-args to master

[#52116083]
Make documentation consistent with YAML specification.

[#52116083]
Merge 52116083-java-main-args to master

[#52116083]