use sudo: false
Switch to 2.1.2 on Heroku
Add metrics to build API
Use "$@" instead of eval "$@" in travis_retry

eval "$@" will cause issues with commands that have quotes in them,
making `travis_retry ruby -e 'p ARGV'` run the command `ruby -e p ARGV`,
which won't work correctly. Not using `eval` means that some things
won't work right (mostly just `time <command>`, I believe), but this is
the old behaviour that didn't seem to break for anyone.
Revert "Use "$@" instead of eval "$@" in travis_retry"

This reverts commit 30109b352a124ca78246b78911a6c3b87b743deb.

This ended up breaking things in production, for example git clone
didn't work:

$ git clone --depth=50 --branch=travis git://github.com/owner/repo.git owner/repo
/home/travis/build.sh: line 174: git clone --depth=50 --branch=branch_name git://github.com/owner/repo.git owner/repo: No such file or directory
Change `eval "$@"` in travis_retry to `"$@"`, take II

I first attempted making this change in
30109b352a124ca78246b78911a6c3b87b743deb, but that broke a lot of other
commands. This approach works much better, as it only runs "eval" when
it is needed.
only test on MRI 2.1.x
Decode the SSH key in build instead of on the VM
Add initial Rust support
Change Rust install to not use sudo

Instead of putting everything in /usr, put it in ~/rust and add
~/rust/bin to the PATH.
move "cabal build" to install
change some of the rust specs

and comment some out until I can get them to pass
stub out cargo and cabal commands in the specs
add some rust spec back

but reworked a little
correct the ansi colour codes

Mā is white, whero is red, kākāriki green 
Pango is black, pangu is too, A. E. I. O. U. 

Kōwhai yellow, pākākā brown, kiko-rangi blue 
Pa-raka-raka is our orange, A. E. I. O. U.
Fix Rust specs
Add ~/rust/lib to LD_LIBRARY_PATH
Announce the cargo version for Rust builds
Run `cargo build` in `script` phase

The analog to C builds is “make && make test”.

cargo build and cargo test can in theory have different flags when
compiling (one is compiling the actual library/binary, the other a
special test binary), so both of them should be run. The fact that
things do/don’t compile is a sort-of test in itself, so running them in
`script` seems more appropriate.
Move Rust and Cargo install into a fold