Set java.io.tmpdir to $TMPDIR

This is based on an assumption that $TMPDIR is part of the contract
for the droplet execution environment, which is currently
undocumented.

[#52783209]
Merge 52783209-set-java.io.tmpdir-to-TMPDIR-environment-variable to master

[Completes #52783209]
Support read-only buildpack cache

If a repository file cannot be downloaded, look for the file in
the read-only buildpack cache and use that file if it exists.

This code is localised in a look_aside method for ease of stripping
out once a read-write buildpack cache is implemented.

[#54290822]
Merge 54290822-no-external-connection to master

[#54290822]
Test use of stashed index.yml

[#54290822]
Merge 54290822-no-external-connection to master

[#54290822]
Improve diagnostics for read-only buildpack cache

[#54290822]
Test environments

This change adds support for test environments.  The targeted test
environments are lucid64, precise64, and mountainlion64.  The support
comes in the form of the ability to resolve the platform and
architecture of the current host when resolving a repository URI.  The
resolution allows the repository to contain wildcards of '{platform}'
and '{architecture}' which are then substituted with the appropriate
value.

The other half of this support is the modification of the existing
repositories.  Since our Java dependencies do not currently depend on
the host that they are running on, their repository URIs have been
changed to remove the platform and architecture directories.  The
OpenJDK dependency is platform and architecture specific and as such,
it's URI has been modified to include the placeholders.

The final step is the update of all of the documentation to accurately
reflect the new repository structures.

[#52860123]
Merge 52860123-test-environments to master

[Completes #52860123]
Code Climate test coverage

This change slightly modifies the spec_helper to better work with Code
Climate's test coverage.
Merge branch 'code-climate-test'
Add RubyMine debugger gems in their own group

[#56352162]
Support Play 2.0

Play 2.0 dist applications have classpaths similar to Play 2.1.3
stages applications, so use symbolic linking. This minimises the
editing required to the start script.

[#56352162]
Merge 56352162-play-2.0 to master

[Completes #56352162]
Revert "Add RubyMine debugger gems in their own group"

This reverts commit 6d88f9a11e371d8696f5f7430a172b32271a7c4f.
Downgrade logging levels of "no internet" logs

[#54290822]
Merge 54290822-downgrade-no-internet-logging to master

[Completes #54290822]
Improved logging robustness and handling in tests

Make the logging code more robust and add diagnostics.

Use before(:all) in spec_helper.rb to ensure a normal logger is
present. This avoids example groups having to restore a normal logger
if they have created a special logger.

[#56061680]

Suppress output from download_cache_spec.rb

Create logger based on StringIO $stderr to avoid logs appearing on
STDERR. Set $stdout to a StringIO to avoid download failures appearing
on STDOUT.

[#56330430]
Merge 56061680-logger-robustness-improvements to master

[Completes #56061680]
Gems for use with RubyMine debugger