[ci] Overhaul CI config
[ci] Overhaul CI config

Use `language:` to select the language where supported.  This should
typically select a VM image with the appropriate language already
installed, avoids jobs failing if an external repo is down, and means
each CI job is more clearly labelled in the UI.

Install fpc using travis apt add-on for cleaner handling of errors.

Default CC to gcc in one place to avoid having to specify it in
many of the jobs.

Test go 1.8 and 1.12.

Test rust stable and beta.

Drop obsolete `sudo: false`.

snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball