Implement a pip self-check with to determine when it's out of date.

Initial work cribbed from PR 1214.
Fix for Python 3.x, Refactor, and small changes
Fix compatability with Python 2.6
Fix on PyPy
Fix pep8 tests
Merge pull request #2049 from dstufft/pip-version-check-redux

pip version check redux