Makefile edits to improve library lint target support.

Makefile
--------
  o Replace inlined includes with single $(MAKEDIR)/include.mk
  o virtualenv install w/dependencies handled by makefiles/virtualenv.mk
  o Use '&&' for command separation to improve error handling.
  o Added more target documentation.
  o Re-home doc8/rst syntax checking into makefiles/lint/doc8.mk.

howto/code/linting.rst
----------------------
  o Document supported lint targets on docs.voltha.org.

howto/release/index.rst
howto/release/post-release/
howto/release/vcs/
---------------------------
  o Document more release related activity (bugfix branch creation)

makefiles/consts.mk
-------------------
  o Define and use more library macros.

config.mk
---------
  o Per-repository library makefile configuration, disable linting.

makefiles/virtualenv.mk
-----------------------
  o Library virtualenv install with dependences.
  o Begin using a consistent install directory.
  o Ugh: repository (voltha-docs) submodules each install a full venv.
  o Install dependency drive based on existence of activate script.
  o Lint targets updated to use activate script as a dependency.
  o Update activate macro to run:  set -u && activate && set +u

makefiles/patches/include.mk
----------------------------
  o Update to use virtualenv.mk defined macros.

makefiles/lint/doc8.mk
makefiles/lint/python/flake8.mk
makefiles/lint/json.mk
makefiles/lint/python/pylint.mk
makefiles/lint/robot.mk
makefiles/lint/shell.mk
makefiles/lint/yaml.mk
-------------------------------
  o All library linting defines consistent targets and logic.
  o Support two library targets: lint-all and lint-modified.
  o Default to checking all available sources.
  o Linting can be disabled per-repository via {project}/config.mk

Change-Id: I7b7b5e523c867183d44244a0da21cfa3584e9a50
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..2add84e
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,45 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------
+
+##---------------------------------------##
+##---]  Disable lint targets by name [---##
+##---------------------------------------##
+# NO-LINT-DOC8       := true
+NO-LINT-FLAKE8       := true#      # NOTE[1]
+# NO-LINT-JJB        := true
+NO-LINT-JSON       := true
+#   python -m json.tool ./_build/linkcheck/output.json
+#   Extra data: line 2 column 1 (char 181)
+# NO-LINT-MAKE       := true
+NO-LINT-PYLINT       := true#      # NOTE[1]
+# NO-LINT-PYTHON     := true
+NO-LINT-ROBOT      := true#        # NOTE[2]
+# NO-LINT-SHELL      := true
+# NO-LINT-TOX        := true#      # WIP
+# NO-LINT-YAML       := true
+
+# NOTE[1] - Cleanup needed to enable as a default make lint target
+# NOTE[2] - Doc repo, no need to lint robot sources here.
+
+##-----------------------------##
+##---]  Custom exclusions  [---##
+##-----------------------------##
+lint-doc8-excl += --ignore-path "vendor"
+
+config-mk-version    := 1.0
+
+# [EOF]