pip/venv in `before_install`; override `install` for docs build

Rather than adding an `if [ -n "$DOCS" ]` as a separate install
instruction, this simplifies the travis-ci logic to do the pip/venv
setup in the `before_install` hook, leaving the install hook to just
install the needed packages.

This makes the default install script simpler: it doesn't need to check
NATIVE_DEPS or DOCS because both of those now override `install`
anyway, so the top-level `install` is really just the install for the
gcc-4.8 and osx builds; the docker builds and docs build override
install completely.
diff --git a/.travis.yml b/.travis.yml
index f0e6af1..abdb4bb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -55,7 +55,8 @@
     language: docs
     compiler: sphinx
     env: PYTHON=2.7 DOCS=1
-    script: $SCRIPT_RUN_PREFIX make -C docs html SPHINX_OPTIONS=-W
+    install: pip install sphinx sphinx_rtd_theme
+    script: make -C docs html SPHINX_OPTIONS=-W
 cache:
   directories:
   - $HOME/.cache/pip
@@ -73,7 +74,6 @@
     docker exec --tty "$containerid" apt-get -y upgrade
     export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
   fi
-install:
 - |
   if [ -z "$NATIVE_DEPS" ]; then
     if [ "$TRAVIS_OS_NAME" = "linux" ]; then
@@ -92,16 +92,13 @@
     fi
     source venv/bin/activate
   fi
+install:
 - |
-  if [ -n "$DOCS" ] && [ -z "$NATIVE_DEPS" ]; then pip install sphinx sphinx_rtd_theme; fi
-- |
-  if [ -z "$NATIVE_DEPS" ] && [ -z "$DOCS" ]; then
-    pip install numpy scipy 
+  pip install numpy scipy
 
-    wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
-    tar xzf eigen.tar.gz
-    export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
-  fi
+  wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
+  tar xzf eigen.tar.gz
+  export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
 script:
 - $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
     -DPYBIND11_PYTHON_VERSION=$PYTHON