Fix coverage tests.  Add .travis.yml

Testing Done:
Tests running on travis.

Reviewed at https://rbcommons.com/s/twitter/r/766/
split source package archive management out into archiver.py

This is a minor refactor, but helps organize the code for some future
reworking of pex.http.

Testing Done:
tox

Reviewed at https://rbcommons.com/s/twitter/r/767/
Fix missing symbol in archiver.  Add regression test coverage.

Testing Done:
Added test case.  Test failed.  Fixed bug, test passed.

Reviewed at https://rbcommons.com/s/twitter/r/773/
Release pex 0.7.0

s/CHANGES/CHANGES.rst/
Increments 0.7.0-rc0 to 0.7.0
This is the version that will be published.

Reviewed at https://rbcommons.com/s/twitter/r/774/
doco

Reviewed at https://rbcommons.com/s/twitter/r/783/
Add Travis CI status to the README

https://travis-ci.org/pantsbuild/pex
Refactor http handling in pex

This reworks http handling in pex to be more performant and to allow for
alternate implementations and connection disciplines.  It also fixes the
general flakiness around untranslatable packages.

The pex.http submodule is gone and each of its packages are moved into pex directly:
  pex.crawler
  pex.link
  pex.http

Crawler is out of the business of caching -- instead this is handed off to the http layer.

Link is out of the business of fetching -- it is now only a wrapper around a URL.

Web/CachedWeb is killed in favor of a new class pex.http.Context.
Subclasses need only implement 'open(link)' and return a file-like object.
There are three concrete implementations:
  - UrllibContext (python standard library http context)
  - RequestsContext (requests-based http context)
  - CachingRequestsContext (a requests-based http context with CacheControl if available)

The Requests-based contexts also support https cert validation and hash
fragment verification (via StreamFilelike) bringing it up to security parity
with pip.

The rest of the API is modified as minimally as possible to accommodate the
above.  Users consuming the 'pex' binary and those who just use 'resolve'
with default implementations will be unaffected.

Changes that will break pants:

  Obtainer now takes a context instead of a crawler (don't dwell on this too
  much -- Obtainer will be deleted altogether in the next review.)

  Translators no longer take conn_timeout since they no longer do any
  fetching -- this responsibility is delegated to the Context implementations.

Increments to 0.8.0-rc0.

Testing Done:

pex.{crawler,link,http} have improved coverage over their predecessors.  The
only thing I can think that might be worse is that UrllibContext does
nothing to try to recover from errors -- it's mostly assumed that people
will use the RequestsContext.

Reviewed at https://rbcommons.com/s/twitter/r/778/
Decouple translation and package iteration (kill pex.obtainer)

This gets rid of the Obtainer and is based off
https://rbcommons.com/s/twitter/r/778/.  This makes resolve() take a few
more options but simplifies the caching story -- there is really just one
place to specify a cache path.

Did a run of isort + killing unused imports, hence a couple drive-by files being touched.

Testing Done:
tox + pex building itself

Reviewed at https://rbcommons.com/s/twitter/r/785/
Add better coverage reporting to pex

Adds the ability to test the code running within the .bootstrap directory of
a pex environment, which otherwise does not get run by pytest-cov.  Also
adds the ability to integration test pex/bin/pex.py.

Testing Done:
tox
tox -e py2-integration,py3-integration,combine
open htmlcov/index.html

Reviewed at https://rbcommons.com/s/twitter/r/836/
Replace use of os.unsetenv(...) with del os.environ[...]
"$ tox" is a BASH command
Removed double quotes
Merge pull request #15 from adamtheturtle/readme-highlighting

Readme command highlighting
Allow requirement URLs to be subclassed prior to crawling.
Fix import sorting order.
Add retry support to RequestsContext.

commit dfdf21ce5c9aa2db8259f0579519ad5bbbe17ed5
Author: Joshua Cohen <jcohen@twitter.com>
Date:   Fri Nov 7 15:11:25 2014 -0800

    Add retry support to RequestsContext.

 pex/http.py        |  35 +++++++++++++++----
 tests/test_http.py | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 127 insertions(+), 8 deletions(-)

Testing Done:
$ tox

Reviewed at https://rbcommons.com/s/twitter/r/1303/
Fix python 3.x compatibility for requests retries.

Testing Done:
tox (with python 3.3 and python3.4 actually installed this time).

Reviewed at https://rbcommons.com/s/twitter/r/1369/
Fix PyPy tests.

PyPy tests were broken due to different behavior when swallowing exceptions
during atexit handling.  Just skip the test when run in PyPy.
Make pex --version correct.  Fixes #19.
Fix over-aggressive sys.modules scrubbing for namespace packages.

Testing Done:

This bug manifested itself when running our internal pants in a virtualenv
that already had pants installed, resulting in some bizarre conflicts of
namespace packages.  I verified the fix by manually patching this version of
pex into the existing pants internal pex.  However I could not come up with
a succint unit _or_ integration test to cover it.

Existing tests continue to pass: https://travis-ci.org/wickman/pex/builds/41673725

Reviewed at https://rbcommons.com/s/twitter/r/1378/