Fix path to build dir in assertion

`Path() / "/build"` results in an absolute path `/build`, which is not
what is meant to be checked for.
Merge pull request #1803 from blueyed/fix-test_no_install_and_download_should_not_leave_build_dir

Fix path to build dir in assertion
Isolate our tests from the running user's configuration
Merge pull request #1801 from dstufft/isolate-tests

Isolate our tests from the running user's configuration
Bundle CacheControl and lockfile
Use CacheControl instead of custom cache code

* Deprecates the --download-cache option & removes the download
  cache code.
* Removes the in memory page cache on the index
* Uses CacheControl to cache all cacheable HTTP requests to the
  filesystem.
  * Properly handles CacheControl headers for unconditional
    caching.
  * Will use ETag and Last-Modified headers to attempt to do a
    conditional HTTP request to speed up cache misses and turn
    them into cache hits.
  * Removes some concurrency unsafe code in the download cache
    accesses.
* Adds pip.appdirs to handle platform specific application
  directories such as cache, config, data, etc.