Initial project structure

This change adds the skeleton for the project
Detect script

Previously, the buildpack did not meet the contractual obligations for
the detect phase of the buildpack lifecycle.  This change adds a
bin/detect shell script which delegates to a ruby class internally.
This class currently does nothing, but will need to delegate to
buildpack components in the future.

[#49320357]
Merge 49320357-detect to master

[Completes #49320357]
Build notifications

This change adds support for notifying Project Monitor on builds
Merge branch 'project-monitor'
Compile script

Previously, the buildpack did not meet the contractual obligations for
the compile phase of the buildpack lifecycle.  This change adds a
bin/compile shell script which delegates to a ruby class internally.
This class currently does nothing, but will need to delegate to
buildpack components in the future.

[#49321271]
Merge 49321271-compile to master

[Completes #49321271]
Release script

Previously, the buildpack did not meet the contractual obligations for
the release phase of the buildpack lifecycle.  This change adds a
bin/release shell script which delegates to a ruby class internally.
This class currently does nothing, but will need to delegate to
buildpack components in the future.

[#49321333]
Merge 49321333-release to master

[Completes #49321333]
Detect Java configured with system.properties

Previously, a user had no way to configure which vendor and version of
Java their app should use.  This change adds the ability to set a pair
of properties in a system.properties file in the root of their
deployed artifact.

[#49321577]
Merge 49321577-which-java-system-properties to master

[Completes #49321577]
Integrated buildpack

Previously, the buildpack was split across multiple repositories.  As
this was a premature optimization, the code has been combined into a
single repository for now.  This change also adds a default behavior
of executing a Java application based on the Main-Class value in its
manifest.  This is not intended to be the behavior long-term and is
only there to facilitate current testing.

[#49321577]
49321577-integrated-buildpack to master

[Completes #49321577]
Explicit Java via env vars

Previously, the only way to specify a vendor and version of Java was
to use a system.properties file in deployed artifact.  As this implied
pollution of user-code, another (non-invasive) facility for
configuring this was required.  This change adds the ability to set
the JAVA_RUNTIME_VENDOR and JAVA_RUNTIME_VERSION environment variable
to specify a vendor and version of JAVA to use.

[#49335349]
Merge 49335349-env-vars to master

[Completes #49335349]
Invalid version and vendor errors

Previously, if the user specified an invalid vendor or version, there
was no error message.  This change adds a check to ensure that the
user specified a valid vendor and version and raises an error for the
user if they do not.

[#49321679]
Merge 49321679-error-message to master

[Completes #49321679]
Non-zero exit on failure in detect

Previously, if a failure occurred in detect, the exit code was
undefined. To meet the buildpack contract, a non-zero exit code is not
returned in the case of a failure in the detect method.

[#49421471]
Merge 49421471-detect-non-zero to master

[Completes #49421471]
Non-zero exit on failure in compile

Previously, if a failure occurred in compile, the exit code was
undefined. To meet the buildpack contract, a non-zero exit code is now
returned in the case of a failure in the compile script.

[#49421485]