Improve error detection when loading config
Improve error detection when loading config

Previously we simply ignored any not found error when loading the
containerd config. This created unintuitive behavior:

- If the user specified a path that didn't exist via --config, we would
  silently ignore the error.
- If a config specified an import that didn't exist, we would silently
  ignore the error.

In either of these cases, it appears we would end up using a potentially
corrupted config, as it would contain any files that were merged into it
before the not found error was hit.

However, we can't just remove the check for !os.IsNotExist(err),
as we shouldn't throw an error when --config is not passed, but the
default config doesn't exist.

This change updates the logic to only attempt to load the config if
we know it exists, or the user passed --config.

Signed-off-by: Kevin Parsons <179e5f33d278e7f4e6411489dacfa9a734384f98@microsoft.com>

containerd/containerd,estesp/containerd,dmcgowan/containerd,mikebrow/containerd,estesp/containerd,dmcgowan/containerd,thaJeztah/containerd,thaJeztah/containerd,vdemeester/containerd,mikebrow/containerd,containerd/containerd,vdemeester/containerd