Fixes #4459 -- switch all our builds to xenial on travis (#4486)

* Fixes #4459 -- switch all our builds to xenial on travis

* Attempt to fix tests

* Try disabling sudo?

* typo

* try this?

* shellcheck
diff --git a/.travis.yml b/.travis.yml
index de78953..51a51f6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
-sudo: false
-dist: trusty
+sudo: true
+dist: xenial
 
 language: python
 
@@ -29,15 +29,19 @@
           env: TOXENV=py36
         - python: 3.7
           env: TOXENV=py37
-          dist: xenial
-          sudo: true
         - python: pypy-5.3
           env: TOXENV=pypy-nocoverage
+          # PyPy 5.3 isn't available for xenial
+          dist: trusty
         - python: pypy2.7-5.10.0
           env: TOXENV=pypy-nocoverage
         - python: pypy3.5-5.10.1
           env: TOXENV=pypy3-nocoverage
         - python: 2.7
+          env: TOXENV=py27 OPENSSL=1.0.1u
+        - python: 3.7
+          env: TOXENV=py37 OPENSSL=1.0.1u
+        - python: 2.7
           env: TOXENV=py27 OPENSSL=1.1.0i
         - python: 3.5
           env: TOXENV=py35 OPENSSL=1.1.0i
@@ -45,20 +49,12 @@
           env: TOXENV=py27 OPENSSL=1.1.1
         - python: 3.7
           env: TOXENV=py37 OPENSSL=1.1.1
-          dist: xenial
-          sudo: true
         - python: 3.7
           env: TOXENV=py37 LIBRESSL=2.4.5
-          dist: xenial
-          sudo: true
         - python: 3.7
           env: TOXENV=py37 LIBRESSL=2.6.5
-          dist: xenial
-          sudo: true
         - python: 3.7
           env: TOXENV=py37 LIBRESSL=2.7.4
-          dist: xenial
-          sudo: true
         - python: 3.6
           env: TOXENV=docs OPENSSL=1.1.0i
           addons:
@@ -80,12 +76,18 @@
           env: DOWNSTREAM=aws-encryption-sdk
         - python: 2.7
           env: DOWNSTREAM=dynamodb-encryption-sdk OPENSSL=1.1.0i
+          # dynamodb-encryption-sdk tests fail on xenial for whatever reason
+          dist: trusty
+          sudo: false
         - python: 2.7
           env: DOWNSTREAM=certbot OPENSSL=1.1.0i
         - python: 2.7
           env: DOWNSTREAM=certbot-josepy
         - python: 2.7
           env: DOWNSTREAM=urllib3
+          # urllib3 tests fail on xenial for whatever reason
+          dist: trusty
+          sudo: false
 
 install:
     - ./.travis/install.sh
diff --git a/.travis/install.sh b/.travis/install.sh
index 0aecb2b..20a8831 100755
--- a/.travis/install.sh
+++ b/.travis/install.sh
@@ -23,9 +23,14 @@
         shlib_sed
         make depend
         make -j"$(nproc)"
-        # avoid installing the docs
-        # https://github.com/openssl/openssl/issues/6685#issuecomment-403838728
-        make install_sw install_ssldirs
+        if [[ "${OPENSSL}" =~ 1.0.1 ]]; then
+            # OpenSSL 1.0.1 doesn't support installing without the docs.
+            make install
+        else
+            # avoid installing the docs
+            # https://github.com/openssl/openssl/issues/6685#issuecomment-403838728
+            make install_sw install_ssldirs
+        fi
         popd
     fi
 elif [ -n "${LIBRESSL}" ]; then