Travis cleanup

Some cleanups to the Travis `before_script`.  There are three main changes:
- Conditionals are changed to use `if` so that we don't need to append `|| true` to them, which means that errors are correctly detected in the script commands.  Previously, errors were completely ignored and showed up as problems elsewhere, making it hard to trace Travis setup failures back to their actual cause.
- Some of the large toolchain downloads seem to be frequent causes of travis build failures.  `travis_retry` was added to them to give them a better chance of succeeding.
- Rename the "arm" arch to "arm-apcs" in the tests, to distinguish between:
  - existing platforms that currently rely on an ancient ARM toolchain that support the obsolete APCS standard (now `arm-apcs`)
  - upcoming platforms that can use an up-to-date mainline ARM toolchain (which will just be called `arm`).