Make JVM builds aware of gradle wrapper

JVM alreads know about build.gradle to make builds using pre-installed
gradle binaries. But Gradleware recomends a feature[1] where a gradle
wrapper script can be used so build can be more smart about required
gradle versions.

This commit makes Travis smart about Gradle smartness.

[1]: http://www.gradle.org/docs/current/userguide/gradle_wrapper.html
use Ruby 1.9.3 for running dpl
have edge use the latest prerelease instead of git
Merge pull request #127 from travis-ci/rkh-dpl-ruby

Rkh dpl ruby
turn into addon for travis gem
Without sbt configuration, scala behaves like jvm

Avoid code repetitions between scala builder and other JVM languages, by
applying same rules for build tool detection (Gradle, Maven and Ant)
Maintain the same code style for checking file existence
Merge pull request #128 from travis-ci/rkh-cli-addon

turn into addon for travis gem
Add option to specify an apt cache.
Only set it up when a cache is configured.
Don't use regexp when the command is a string.

This escapes special characters like {} and ' in unfortunate ways.
Add tests for apt cache configuration.
allow running commands before and after deploy

* moves deployment to an internal deploy stage that will run after after_success
* adds a special before_deploy stage that will run before deploy, but only if we actually deploy
* adds a special after_deploy stage that will run after deploy, but only if we actually deploy
assert commands in before_deploy
Allow setting a custom npm proxy.
Who put that extra quote sign in here?
Change specs to use raw generated script for apt cache.

Unfortunately evaluating the build script removes the pipes from
the output, and using tee is currently the best approach I can
think of.
Remove todo.
Redirect tee line to /dev/null.
extract source_host from source_url