Enable pip cache and set Python version
diff --git a/.travis.yml b/.travis.yml
index d9b4cb5eade..67da27d00be 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,9 @@
 language: python
 
+cache:
+    directories:
+        - $HOME/.cache/pip
+
 services:
   - rabbitmq
   - mariadb
@@ -19,23 +23,30 @@ env:
   global:
     - GOPATH=/tmp/go
     - PATH=$GOPATH/bin:$PATH
-  matrix:
-    - TOXENV=py26 BOULDER_INTEGRATION=1
-    - TOXENV=py27 BOULDER_INTEGRATION=1
-    - TOXENV=py26-oldest BOULDER_INTEGRATION=1
-    - TOXENV=py27-oldest BOULDER_INTEGRATION=1
-    - TOXENV=py33
-    - TOXENV=py34
-    - TOXENV=lint
-    - TOXENV=cover
-# Disabled for now due to requiring sudo -> causing more boulder integration
-# DNS timeouts :(
-#    - TOXENV=apacheconftest
 matrix:
   include:
-    - env: TOXENV=py35
-      python: 3.5
-
+    - python: "2.6"
+      env: TOXENV=py26 BOULDER_INTEGRATION=1
+    - python: "2.6"
+      env: TOXENV=py26-oldest BOULDER_INTEGRATION=1
+# Disabled for now due to requiring sudo -> causing more boulder integration
+# DNS timeouts :(
+#   - python: "2.7"
+#     env: TOXENV=apacheconftest
+    - python: "2.7"
+      env: TOXENV=py27 BOULDER_INTEGRATION=1
+    - python: "2.7"
+      env: TOXENV=py27-oldest BOULDER_INTEGRATION=1
+    - python: "2.7"
+      env: TOXENV=cover
+    - python: "2.7"
+      env: TOXENV=lint
+    - python: "3.3"
+      env: TOXENV=py33
+    - python: "3.4"
+      env: TOXENV=py34
+    - python: "3.5"
+      env: TOXENV=py35
 
 # Only build pushes to the master branch, PRs, and branches beginning with
 # `test-`. This reduces the number of simultaneous Travis runs, which speeds
@@ -57,7 +68,6 @@ addons:
     sources:
     - augeas
     packages:  # keep in sync with bootstrap/ubuntu.sh and Boulder
-    - python
     - python-dev
     - python-virtualenv
     - gcc

Builds off #2160 (which builds off #2030). My theory for why this didn't work before is Travis didn't know Python version our tests were running, causing it to use the wrong `pip` cache.

Building off of #2160 should fix this. I will run Travis tests multiple times and verify the cache is used in each test to prevent the problems that occurred before.
