Created a flake8.ini file with flake8 configs. Using --append-config to tell flake8 to use this config file. (#11999)

diff --git a/tools/flake8.ini b/tools/flake8.ini
new file mode 100644
index 0000000..85e2308
--- /dev/null
+++ b/tools/flake8.ini
@@ -0,0 +1,21 @@
+[flake8]
+# flake8 config used in tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
+select = E,W,F,N
+# E128: continuation line under-indented for visual indent
+# E129: visually indented line with same indent as next logical line
+# E221: multiple spaces before operator
+# E226: missing whitespace around arithmetic operator
+# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
+# E251: unexpected spaces around keyword / parameter equals
+# E265: block comment should start with ‘# ‘
+# E302: expected 2 blank lines, found 0
+# E303: too many blank lines (3)
+# E305: expected 2 blank lines after end of function or class
+# E402: module level import not at top of file
+# E731: do not assign a lambda expression, use a def
+# E901: SyntaxError or IndentationError
+# W601: .has_key() is deprecated, use ‘in’
+# N801: class names should use CapWords convention
+# N802: function name should be lowercase
+ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,N801,N802
+max-line-length = 141
diff --git a/tools/tox.ini b/tools/tox.ini
index e338cf7..3eb12c3 100644
--- a/tools/tox.ini
+++ b/tools/tox.ini
@@ -17,30 +17,10 @@
 
 commands =
   pytest --cov {posargs}
-  flake8
+  flake8 --append-config=flake8.ini
 
 passenv =
   HYPOTHESIS_PROFILE
 
 [flake8]
-# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
-select = E,W,F,N
-# E128: continuation line under-indented for visual indent
-# E129: visually indented line with same indent as next logical line
-# E221: multiple spaces before operator
-# E226: missing whitespace around arithmetic operator
-# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
-# E251: unexpected spaces around keyword / parameter equals
-# E265: block comment should start with ‘# ‘
-# E302: expected 2 blank lines, found 0
-# E303: too many blank lines (3)
-# E305: expected 2 blank lines after end of function or class
-# E402: module level import not at top of file
-# E731: do not assign a lambda expression, use a def
-# E901: SyntaxError or IndentationError
-# W601: .has_key() is deprecated, use ‘in’
-# N801: class names should use CapWords convention
-# N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,N801,N802
-max-line-length = 141
 exclude = .tox,html5lib,third_party,pywebsocket,six,_venv,webencodings,wptserve/docs,wptserve/tests/functional/docroot/,wpt,wptrunner
diff --git a/tools/wpt/tox.ini b/tools/wpt/tox.ini
index 31ded48..e486bb2 100644
--- a/tools/wpt/tox.ini
+++ b/tools/wpt/tox.ini
@@ -23,26 +23,4 @@
      pep8-naming==0.4.1
 
 commands =
-     flake8 {posargs}
-
-[flake8]
-# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
-select = E,W,F,N
-# E128: continuation line under-indented for visual indent
-# E129: visually indented line with same indent as next logical line
-# E221: multiple spaces before operator
-# E226: missing whitespace around arithmetic operator
-# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
-# E251: unexpected spaces around keyword / parameter equals
-# E265: block comment should start with ‘# ‘
-# E302: expected 2 blank lines, found 0
-# E303: too many blank lines (3)
-# E305: expected 2 blank lines after end of function or class
-# E402: module level import not at top of file
-# E731: do not assign a lambda expression, use a def
-# E901: SyntaxError or IndentationError
-# W601: .has_key() is deprecated, use ‘in’
-# N801: class names should use CapWords convention
-# N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,N801,N802
-max-line-length = 141
+     flake8 --append-config=../flake8.ini {posargs}
diff --git a/tools/wptrunner/tox.ini b/tools/wptrunner/tox.ini
index 80bf12c..fa7985e 100644
--- a/tools/wptrunner/tox.ini
+++ b/tools/wptrunner/tox.ini
@@ -33,26 +33,4 @@
      pep8-naming==0.4.1
 
 commands =
-     flake8
-
-[flake8]
-# flake8 config should be kept in sync across tools/tox.ini, tools/wpt/tox.ini, and tools/wptrunner/tox.ini
-select = E,W,F,N
-# E128: continuation line under-indented for visual indent
-# E129: visually indented line with same indent as next logical line
-# E221: multiple spaces before operator
-# E226: missing whitespace around arithmetic operator
-# E231: missing whitespace after ‘,’, ‘;’, or ‘:’
-# E251: unexpected spaces around keyword / parameter equals
-# E265: block comment should start with ‘# ‘
-# E302: expected 2 blank lines, found 0
-# E303: too many blank lines (3)
-# E305: expected 2 blank lines after end of function or class
-# E402: module level import not at top of file
-# E731: do not assign a lambda expression, use a def
-# E901: SyntaxError or IndentationError
-# W601: .has_key() is deprecated, use ‘in’
-# N801: class names should use CapWords convention
-# N802: function name should be lowercase
-ignore = E128,E129,E221,E226,E231,E251,E265,E302,E303,E305,E402,E731,E901,W601,N801,N802
-max-line-length = 141
+     flake8 --append-config=../flake8.ini