Misc edits: makefiles/ and jjb templates.

Makefile
config.mk
makefiles/consts.mk
makefiles/lint/jjb.mk
---------------------
  o config.mk - initial setup to support library and local makefiles.
  o Move jjb lint target (~test) into jjb.mk, conditional logging verbosity.

makefiles/git-submodules.mk
---------------------------
  o Restore skeleton git submodule dir(s) after 'make sterile' is used.
  o Some external repo content placed under revision control.
  o Odd state: make clean induces bogus git status 'deleted:'

jjb/api-test.yaml
-----------------
  o Lint cleanup, fixed a complaint about replacment of non-expansive !include token.

jjb/defaults.yaml
-----------------
  o jjb + LinuxFoundation submodules have gone stale.
  o note download sources for a pending upgrade.

jenkins_jobs.errors.JenkinsJobsException:
  Failed to find suitable template named '{project-name}-ci-jobs'
-----------------------------------------------------------------
  o Finding 2020 changeset(s) also fail linting with this problem.
  o Might have an intermittent failure to debug in here.
  o Several jobs have run cleanly in the interim.

Change-Id: I20a0f3f0f731d6f312e5798af6049afd2e18c1c9
diff --git a/makefiles/consts.mk b/makefiles/consts.mk
index 95d69a2..4e3e24d 100644
--- a/makefiles/consts.mk
+++ b/makefiles/consts.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-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.
@@ -14,30 +14,35 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
-null        :=#
-space       := $(null) $(null)
-dot         ?= .
+# include makefiles/constants.mk
+export dot          :=.
+export null         :=#
+export space        := $(null) $(null)
+export quote-single := $(null)"$(null)#"
+export quote-double := $(null)'$(null)#'
 
+# [DEBUG] make {target} HIDE=
 HIDE        ?= @
 
 env-clean   = /usr/bin/env --ignore-environment
 xargs-n1    := xargs -0 -t -n1 --no-run-if-empty
 
 ## -----------------------------------------------------------------------
-## Not recommended but support (-u)ndef-less shell for pyenv activate
-## TODO: declare a pyenv shell
+## Default shell:
+##   o set -e            enable error checking
+##   o set -u            report undefined errors
+##   o set -o pipefail   propogate shell pipeline failures.
 ## -----------------------------------------------------------------------
+SHELL ?= /bin/bash
 have-shell-bash := $(filter bash,$(subst /,$(space),$(SHELL)))
 $(if $(have-shell-bash),$(null),\
-  $(eval export SHELL := /bin/bash -euo pipefail))
-
-shell-pyenv := bash -eo pipefail
+  $(eval export SHELL := bash -euo pipefail))
 
 $(if $(DEBUG),$(warning LEAVE))