Reduce / update travis build matrix. (#598)

diff --git a/.travis.yml b/.travis.yml
index 3cbb379..95589a6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,6 +9,15 @@
     ## Linux builds using various versions of GCC.
     ###
     - os: linux
+      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-7 CXX_COMPILER=g++-7
+      addons:
+        apt:
+          sources:
+          - ubuntu-toolchain-r-test
+          packages:
+          - gcc-7
+          - g++-7
+    - os: linux
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
       addons:
         apt:
@@ -27,51 +36,6 @@
           - gcc-5
           - g++-5
     - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
-      addons:
-        apt:
-          sources:
-          - ubuntu-toolchain-r-test
-          packages:
-          - gcc-4.9
-          - g++-4.9
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8
-      addons:
-        apt:
-          sources:
-          - ubuntu-toolchain-r-test
-          packages:
-          - gcc-4.8
-          - g++-4.8
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7
-      addons:
-        apt:
-          sources:
-          - ubuntu-toolchain-r-test
-          packages:
-          - gcc-4.7
-          - g++-4.7
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6
-      addons:
-        apt:
-          sources:
-          - ubuntu-toolchain-r-test
-          packages:
-          - gcc-4.6
-          - g++-4.6
-    # - os: linux
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5
-    #   addons:
-    #     apt:
-    #       sources:
-    #       - ubuntu-toolchain-r-test
-    #       packages:
-    #       - gcc-4.5
-    #       - g++-4.5
-    - os: linux
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
       addons:
         apt:
@@ -85,38 +49,20 @@
     ## clang on Linux
     ###
     - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8
+      env: BUILD_SYSTEM=cmake C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0
       addons:
         apt:
           sources:
-          - llvm-toolchain-precise-3.8
+          - llvm-toolchain-trusty-4.0
           - ubuntu-toolchain-r-test
           packages:
-          - clang-3.8
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.7 CXX_COMPILER=clang++-3.7
-      addons:
-        apt:
-          sources:
-          - llvm-toolchain-precise-3.7
-          - ubuntu-toolchain-r-test
-          packages:
-          - clang-3.7
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.6 CXX_COMPILER=clang++-3.6
-      addons:
-        apt:
-          sources:
-          - llvm-toolchain-precise-3.6
-          - ubuntu-toolchain-r-test
-          packages:
-          - clang-3.6
+          - clang-4.0
     - os: linux
       env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5
       addons:
         apt:
           sources:
-          - llvm-toolchain-precise-3.5
+          - llvm-toolchain-trusty-3.5
           - ubuntu-toolchain-r-test
           packages:
           - clang-3.5
@@ -160,20 +106,10 @@
     ## all since we already test all these versions of GCC on Linux.
     ## We'll just test 4.4 and the most recent version.
     ###
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
+    - os: osx
+      env: BUILD_SYSTEM=cmake C_COMPILER=gcc-6 CXX_COMPILER=g++-6
     - os: osx
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc-5 CXX_COMPILER=g++-5
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.8 CXX_COMPILER=g++-4.8
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.7 CXX_COMPILER=g++-4.7
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.6 CXX_COMPILER=g++-4.6
-    # - os: osx
-    #   env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.5 CXX_COMPILER=g++-4.5
     - os: osx
       osx_image: beta-xcode6.2
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4
@@ -188,59 +124,38 @@
     ## Sanitizers
     ###
     - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=address
+      env: BUILD_SYSTEM=cmake C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 SANITIZER=address
       addons:
         apt:
           sources:
           - ubuntu-toolchain-r-test
-          - llvm-toolchain-precise-3.8
+          - llvm-toolchain-trusty-4.0
           packages:
-          - clang-3.8
+          - clang-4.0
     - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=thread
+      env: BUILD_SYSTEM=cmake C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 SANITIZER=thread
       addons:
         apt:
           sources:
           - ubuntu-toolchain-r-test
-          - llvm-toolchain-precise-3.8
+          - llvm-toolchain-trusty-4.0
           packages:
-          - clang-3.8
+          - clang-4.0
     - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.8 CXX_COMPILER=clang++-3.8 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
+      env: BUILD_SYSTEM=cmake C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer"
       addons:
         apt:
           sources:
           - ubuntu-toolchain-r-test
-          - llvm-toolchain-precise-3.8
+          - llvm-toolchain-trusty-4.0
           packages:
-          - clang-3.8
-
-    ###
-    ## mingw
-    ###
-    - os: linux
-      env: BUILD_SYSTEM=cmake C_COMPILER=x86_64-w64-mingw32-gcc CXX_COMPILER=x86_64-w64-mingw32-g++ RC_COMPILER=x86_64-w64-mingw32-windres CROSS_COMPILE=yes
-      addons:
-        apt:
-          sources:
-          - ubuntu-toolchain-r-test
-          - george-edison55-precise-backports
-          packages:
-          - binutils-mingw-w64-x86-64
-          - g++-mingw-w64-x86-64
-          - gcc-mingw-w64-x86-64
-          - binutils-mingw-w64-x86-64
-          - wine
-          # Because 2.8.6 passes -rdynamic to the linker, which breaks the build.
-          - cmake
-          - cmake-data
+          - clang-4.0
 
     - os: linux
       env: BUILD_SYSTEM=maven
       language: java
 
     - os: linux
-      dist: trusty
       sudo: required
       language: java
       env: BUILD_SYSTEM=bazel