Relax POGO definition

Previously, the definition for a POGO required that there be a space
between the name of the class and the following curly brace.  This is
not strictly required, and prevented a reasonable application from
running[1].  This change relaxes the definition of a POGO to make that
space optional.

[1]: http://cloudfoundry.zendesk.com/entries/41608943-Spring-Boot-cannot-find-classes-from-groovy-deploys?page=1#post_25224396

[#66666400]
Merge 66666400-boot-cli-detection to master

[Completes #66666400]
Version updates

This change updates the versions of project dependencies.
[#66841286]Add http_proxy support to the download_cache

This is for the benefit of Ruby 1.9.3; in Ruby 2.0 Net::HTTP will
automatically use any proxy defined by $http_proxy.

This change also makes sure that request objects only contain the
request part of the uri and not the hostname and port number to avoid
breakage in the proxy use case.

[#66841286]
Merge 66841286-http-proxy to master

[Completes #66841286]
CodeClimate improvements

This change reduces some duplicated code to make CodeClimate happier.
start_script module function

Previously, the start_script method was defined in a module for
inclusion.  Due to my lack of understanding about module methods in
Ruby, I did not realize that this mean that the method could not be
called directly.  This change makes the start_script method a
module_function allowing it to be called directly.
Support proxy credentials in http_proxy

Previously, the http_proxy support did not pass through credentials
from the environment variable if specified.  This limited the support
to proxies that did not require authentication.  This change adds
support for proxy URIs that contain credentials.

    cf set-env <app-name> http_proxy http://user:password@host:port

[#66924894][resolves #39]
Merge 66924894-proxy-credentials to master

[Completes #66924894]
Redis-based Session Replication

Previously, all Tomcat Sessions existed only in memory.  In the case
that a specific instance failed, the data in the Sessions hosted by
that instance would be lost.  In some circumstances this isn't ideal,
so Sessions should be replicated to an external repository.

This change adds support for persisting Sessions to a Redis instance.
It does this by using the RedisStore Tomcat PersistentManager Store
implementation.

As part of this effort the Tomcat container was refactored (it was
already too complicated) and a ModularComponent base type was created.
The ModularComponent allows enables a component to be composed of
multiple "sub-components" and coordinates the component lifecycle
across all of them.

[#66942528]
Merge 66942528-redis-session-replication to master

[Completes #66942528]
merge buildpack pr from nebhale