Clarify meaing of total available memory

Also note the effect of scaling an application.

[#60311680]
Merge 60311680-clarify-total-memory to master

[Completes #60311680]
Set heap and permgen sizes to maximum values

Set -Xms to the same value as -Xms and -XX:PermSize to the same value
as -XX:MaxPermSize. This ensures that the committed memory for the
heap and the permanent generation does not increase during the
lifetime of the application. This should reduce the possibility of
warden killing the JVM process once the application is running.

[#59731874]
Merge 59731874-xms to master

[Completes #59731874]
Set metaspace size to maximum value

This is to match the behaviour for permgen size.

Also document the new size matching behaviour.

[#59731874]
Merge 59731874-xms to master

[Completes #59731874]
Split additional memory options into separate Java options

[#59731874]
Clarify Java Options Framework != JAVA_OPTS env var

[#60962662]
Merge 59731874-xms to master

[Completes #59731874]
Clarify that user-provided New Relic services are optional

[#60934856]
Merge 60934856- to master

[Completes #60934856]
Test improvements

Based on feedback from people who are extending the buildpack, the
repetitiveness of the buildpack testing was problematic.  The goals of
this change were to drastically reduce the amount of test code written
and make the code that was written more understandable.  These goals
were accomplished with a variety of strategies, but the two biggest
were the use of example metadata and shared contexts.  The example
metadata allows us to declaratively describe things like which
application fixture to use for the test, while the shared contexts
allow us to encapsulate and reuse common test behaviors.

[#59911894]
Merge 59911894-test-helpers to master

[Completes #59911894]
Fix failure

This change fixes a test that was incorrectly refactored in the last
group of changes.

[#59911894]
Merge 59911894-test-improvements to master

[Completes #59911894]
Another test fix

This change fixes the final failing test.

[#59911894]
Merge 59911894-test-fixes to master

[Completes #59911894]
Sorting out Gemfile

This change is another attempt to sort out the Gemfile/debug/Ruby 2.0
interaction.

[#59911894]
Merge 59911894-test-fixes to master

[Completes #59911894]
Prefer FileUtils over shell

This change replaces as many of the calls to shell for file
manipulations (e.g. cp, mv, rm) with FileUtils as is possible.

[#59117282]