This change reimplements the CUDA autoconfiguration mechanism in Skylark,
providing a `cuda_configure` workspace rule. We keep the same user interface,
the ./configure script, but rather than modifying source files within the
source tree, `cuda_configure` generates a `@local_config_cuda` workspace
containing:
* Symlinks to the CUDA headers and libraries
* BUILD files generated with the correct CUDA and cuDNN versions
* CROSSTOOL config with CUDA include dirs populated
* crosstool_wrapper_driver_is_not_gcc wrapper script with compiler paths and
CUDA compute capabilities set.
* cuda_config.h header file with CUDA versions and compute capabilities set,
which can be `#include`d by source files.
This change also makes the following fixes to `Dockerfile.gpu`:
* Change the `CUDNN_INSTALL_PATH` to point to `/usr/lib/x86_64-linux-gnu`
rather than `/usr/local/cuda` since NVIDIA's image installs `libcudnn.so`
under `/usr/lib/x86_64-linux-gnu`.
* Add env variable to set the minimum compute capability to 3.0.
Fixes#2873