Follow K8s loading pattern in makefiles (#256)
Follow K8s loading pattern in makefiles (#256)

```
from `kubectl config`:

 The loading order follows these rules:

  1.  If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once
and no merging takes place.
  2.  If $KUBECONFIG environment variable is set, then it is used as a list of paths (normal path
delimiting rules for your system). These paths are merged. When a value is modified, it is modified
in the file that defines the stanza. When a value is created, it is created in the first file that
exists. If no files in the chain exist, then it creates the last file in the list.
  3.  Otherwise, ${HOME}/.kube/config is used and no merging takes place.
```

This PR handles spaces in directories and duplicate-like naming of config files.

This code works by creating a random number and using that random number as the mount
for the kubeconfig.

Co-Authored-By: Eric Van Norman <ericvn@us.ibm.com>

Big thanks to Eric for the non-stop testing of this work on various platforms and finding
all of the previous flaws in the implementation.
istio/common-files,istio/common-files