Build docs just once, in a dedicated build

This switches the travis-ci build to build the docs in a dedicated
build rather than as part of the regular linux/osx builds.
diff --git a/.travis.yml b/.travis.yml
index 79ea5ce..f0e6af1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,7 +39,7 @@
     install:
     - >
       docker exec --tty "$containerid" apt-get -y --no-install-recommends install
-      python2.7-dev python-scipy libeigen3-dev python-sphinx python-sphinx-rtd-theme
+      python2.7-dev python-scipy libeigen3-dev
       cmake make g++
   - compiler: gcc-6
     services: docker
@@ -48,8 +48,14 @@
     install:
     - >
       docker exec --tty "$containerid" apt-get -y --no-install-recommends install
-      python3.5-dev python3-scipy libeigen3-dev python3-sphinx python3-sphinx-rtd-theme
+      python3.5-dev python3-scipy libeigen3-dev
       cmake make g++
+  # Documentation build:
+  - os: linux
+    language: docs
+    compiler: sphinx
+    env: PYTHON=2.7 DOCS=1
+    script: $SCRIPT_RUN_PREFIX make -C docs html SPHINX_OPTIONS=-W
 cache:
   directories:
   - $HOME/.cache/pip
@@ -85,7 +91,12 @@
       python$PMAJOR -m virtualenv venv
     fi
     source venv/bin/activate
-    pip install numpy scipy sphinx sphinx_rtd_theme
+  fi
+- |
+  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 
 
     wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
     tar xzf eigen.tar.gz
@@ -97,6 +108,5 @@
     -DPYBIND11_CPP_STANDARD=-std=c++$CPP
     -DPYBIND11_WERROR=ON
 - $SCRIPT_RUN_PREFIX make CTEST_OUTPUT_ON_FAILURE=TRUE check -j 2
-- $SCRIPT_RUN_PREFIX make -C docs html SPHINX_OPTIONS=-W
 after_script:
 - if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi