style: Enable flake8 with proper exclusions

This patch ensures we are running flake8 in a DRY fashion, using the same
exclusions as used for pep8. Also fixed is the pep8 module version mismatch
between the version required for hacking.py and the newer version used by
flake8. Finally, the doctest run for pep8 was removed, and enabled for
nose instead.

Implements: blueprint grizzly-debt
Change-Id: I8e19512df4cd37f7ad637b66dff0a5982d14482c