Properly handle extracting requirements from setuptools

* Looks for a *.egg-info/requires.txt and parses it into PEP345
  like metadata
* Attempts to make sure that "Hard" (e.g. from PEP345) requirements
  always win out over "approximate" (e.g. from setuptools)
  requirements