Update hacking for Python3

The repo is Python 3 now, so update hacking to version 3.0.1 which
supports Python 3.

Fix problems found.

Update local hacking checks for new flake8.

Switch to dnspython in requirements.
See also https://review.opendev.org/726353.

Co-Authored-By: Sean McGinnis <sean.mcginnis@gmail.com>
Depends-On: https://review.opendev.org/715682
Change-Id: I49a0ba49133f9592089d3829405847bf2ff8b425
diff --git a/test-requirements.txt b/test-requirements.txt
index 6e6ab00..94bee3c 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -3,6 +3,6 @@
 # process, which may cause wedges in the gate later.
 
 # Hacking already pins down pep8/pycodestyle pyflakes and flake8
-hacking>=1.1.0,<1.2.0 # Apache-2.0
+hacking>=3.0.1,<3.1.0 # Apache-2.0
 openstackdocstheme>=1.18.1 # Apache-2.0
 sphinx!=1.6.6,!=1.6.7,>=1.6.2  # BSD