Reuse package dependencies in setup.py.

Package information was duplicated in requirements.txt and
setup.py. This change introduces a parse_requirements function that
allows separating packages in requirements.txt into sections, and then
using those sections in setup.py, achieving DRY.