Normalize wheel_download_dir passed to RequirementSet

This handles `wheel_dir = ~/.cache/pip/wheelhouse` correctly when
invoked via `pip wheel -r requirements.txt`.
Use `normalize_path` for `download_cache` passed to RequirementSet

This appears to be in line with other places where paths are normalized.
Merge pull request #1788 from blueyed/requirementset-normalize-paths

RequirementSet: normalize paths (esp. wheel_download_dir)
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.