Make more use of setup.py.

Use 'setup.py flake8' for pep8/pyflakes.
Make 'make clean' clean more.
Add python requirements files.
Add misc build/test debris to .gitignore
Add 'make docs' target for sphinx.
Specify we only want to run unit tests by default.
Mark all the functional tests as 'functional'
Use '!functional' as the default test filter

--where works, but seems to confuse coverage
collection.
'make clean' targets runs setup.py clean --all
Make setup.py clean egg-info directory.
Merge pull request #129 from candlepin/alikins/setup_py_requires

Make more use of setup.py.