Support -Pspace=<...> vs. -Pproduction / -Pstaging

Prior to this commit, deployment required specifying

    ./gradlew deploy -Pproduction # OR
    ./gradlew deploy -Pstaging

This worked fine, but required unnecessarily complex conditional logic in
deploy.gradle. This change refactors this logic such that -Pspace is required
and the value is treated as the target space. 'production' is treated as a
reserved value and gets special treatment, e.g.:

 - 'panda' database instead of default 'hippo'
 - 'spring.io' and 'www.spring.io' URIs are mapped, instead of the default '${space}.spring.io'

If the value of the space property is anything other than 'production', then
the defaults mentioned above apply instead.

If the space property is not present and the build is running on Travis CI,
the implementation now looks to the name of the current git branch to
determine the target space. This allows us to push changes to master in order
to deploy to production, and to push branches named stage-foo, stage-bar, etc
to deploy to staging.

See also #331