Update hacking for Python3

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

Update hacking extension for newer flake8. Remove vi header check, this
is enabled as H106 already.

Fix problems found.

Change-Id: Ie4ccf0a1075995f5624a838388b6b0b46343129a
diff --git a/tox.ini b/tox.ini
index af42f58..f42a5b5 100644
--- a/tox.ini
+++ b/tox.ini
@@ -99,12 +99,26 @@
 # H405 is another one that is good as a guideline, but sometimes
 # multiline doc strings just don't have a natural summary
 # line. Rejecting code for this reason is wrong.
-ignore = E123,E125,H405
+# W504 line break after binary operator
+ignore = E123,E125,H405,W504
 builtins = _
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
 
-[hacking]
-local-check-factory = patrole_tempest_plugin.hacking.checks.factory
+[flake8:local-plugins]
+extension =
+  T102 = checks:import_no_clients_in_api_tests
+  T105 = checks:no_setup_teardown_class_for_tests
+  T107 = checks:service_tags_not_in_module_path
+  T108 = checks:no_hyphen_at_end_of_rand_name
+  N322 = checks:no_mutable_default_args
+  T109 = checks:no_testtools_skip_decorator
+  T113 = checks:use_rand_uuid_instead_of_uuid4
+  P100 = checks:no_rbac_rule_validation_decorator
+  P101 = checks:no_rbac_suffix_in_test_filename
+  P102 = checks:no_rbac_test_suffix_in_test_class_name
+  P103 = checks:no_client_alias_in_test_cases
+  P104 = checks:no_extension_rbac_test_suffix_in_plugin_test_class_name
+paths = ./patrole_tempest_plugin/hacking
 
 [testenv:lower-constraints]
 deps =