Fix memory warnings

The "close to default" warning now ignores the stack size which is
usually the default size.

The memory wastage warning should take into account the case where
native memory is bounded above.

The wastage warning message wording is improved.

[#58971702]
Merge 58971702-fix-memory-warnings to master

[Completes #58971702]
Delete extraneous focus

[#58971702]
Merge 58971702-remove-focus to master

[Completes #58971702]
CentOS support

This change updates the RepositoryIndex functionality to substitute
the 'centos#' as a value for platform.  It also brings the platform
resolution strategy inline with the way the java-buildpack-dependecy-
builder does it to ensure that the values will match.

[#58119316]
Merge 58119316-centos-support to master

[#58119316]
Centos6 support documentation

This change adds the missed update to the documentation that points to
the centos6 repository.

[#58119316]
Merge 58119316-centos-support to master

[#58119316]
Only expose application through Tomcat

Previously, the Tomcat container symlinked the application root
directly to TOMCAT_HOME/webapps/ROOT.  This led to a problem where a
web application configured without a root servlet would expose the
filesystem of the application via the default servlet.  This change
fixes that issue by ensuring that only files and directories that are
uploaded by the user are mapped into the ROOT web application.

To make this change, the first implementation of an Application
abstraction has been created.  This initial implementation ensures
that only the originally upload application code is exposed and adds
utility methods for getting a component-specific directory and
determining paths relative to the application root.

[#59134502]
Merge 59134502-only-expose-application-through-tomcat to master

[Completes #59134502]
Rubocop fixes

Bad development practices led me to commit code without first running
the entire rake suite.  This fixes the problems introduced in the last
commit.

[#59134502]
Merge 59134502-rubocop to master

[#59134502]
Change detect output

Previously, the detect output of the buildpack looked something like
the following:

openjdk-1.7.0_40, tomcat-7.0.42, spring-auto-reconfiguration-0.9.1

Per request from the Cloud Foundry core team, this output has been
modified to delimit each entry's name and version number with an
equals sign and each entry from one another with a space.  The output
now looks like:

openjdk=1.7.0_40 tomcat=7.0.42 spring-auto-reconfiguration=0.9.1

[#58810508]
Merge 58810508-detect-output to master

[Completes #58810508]
Support Play 2.2

Refactor Play framework to encapsulate the application-specific pieces
in a "PlayApp" abstraction defined by the BasePlayApp class. This
class has two subclasses: PlayAppPost22 for Play 2.2 and upwards and
PlayAppPre22 for Play 2.1.x and earlier (actually no earlier than 2.0
since older versions are not supported).

PlayAppPre22 is further subclassed by PlayAppPre22Dist and
PlayAppPre22Staged to represent the differences between Play 2.0/2.1
dist and staged applications, respectively.

PlayAppFactory isolates the using code (the Play container and some
associated frameworks) from the concrete subclasses of BasePlayApp.

Play version parsing and the naming requirements for the Play JAR are
both tightened up.

Play 2.2 support consists of:

1. Looking for a different style of start script. The start script is
now present in the bin directory and named after the application.

2. Updating the classpath variable in the start script (for both dist
and staged apps, which are now identical in structure in Play 2.2).

3. Supporting Play 2.2 style Java options by pre-pending '-J' to each
Java option.

4. Avoiding incompatible minimum and maximum heap sizes. Play 2.2 sets
-Xms to a large value by default and when this exceeds our calculated
-Xmx the JVM fails to initialise. Since we do not normally specify
-Xms, we set this to a low value (currently 2M since 1M is
insufficient for the JVM to initialise), but note that we do this for
Play 2.2 only.

[#58432326]
Merge 58432326-play-2.2 to master

[Completes #58432326]
Spring auto-reconfiguration detection for long Spring JAR names

[#59398214]
Merge 59398214-spring-framework-detection to master

[Completes #59398214]
Reset internet availability check before each spec

Some specs run with WebMocks and mock no internet connection while
other specs, notably integration tests, run and access the internet.
Depending on the order of running of specs, an incorrect internet
availability is cached in a DownloadCache class variable. Reset the
cache before each spec.

[#59391214]
Merge 59391214-reset-internet-check to master

[Completes #59391214]