adding option to store bdist files in S3 as a second-level cache

This is so you can check out the code easily. I haven't done documentation yet - if this looks ok, I'll do the docs.

This change really accelerates building on ephemeral Elastic Bamboo instances - since their local filesystems have an empty cache when they start up.

- in addition to local file system
- uses PIP_S3_CACHE_BUCKET envrionment variable to indicate
  S3 use. If this is not set, the S3 cache will not be used
- option PIP_S3_CACHE_PREFIX environment variable sets a prefix
  (folder) to store the bdist files in, allowing for multiple
  OS-specific or platform-specific bdist folders. The user is responsible for manually managing this.


From my read of the code, this does not need to be passed through the expand_user method, as that is used to modify references to a user's home directory for the local caches.