Rewrite Travis CI script.
Lots of changes: - When possible, we use the container infrastructure (sudo: false) rather than Google Compute Engine infrastructure (sudo: required). Unfortunately, we can't use GCE for the Linux builds, where reduced RAM available hoses are GHC build. - Switched from using ./Setup and old-style cabal to new-build. There are numerous great benefits but the best is that .cabal/store can be cached on Travis, leading to huge speedups on the build. Downside is we need to string-and-ceiling-wax support for test/haddock/etc. - I stopped bootstrapping on every build we do; instead there is a separate bootstrap build we do to make sure that that is working. This also speeds up the basic builds since we are not building Cabal/cabal-install multiple times. - There are some hacks. The big one is setting CABAL_BUILDDIR explicitly; this smooths over quite a few infelicities in the current new-build implementation. Signed-off-by: Edward Z. Yang <firstname.lastname@example.org>