registry: remove dependency on rootlesskit, add `SetCertsDir()`
- relates to https://github.com/moby/moby/pull/42330
- relates to https://github.com/docker/cli/pull/3486 https://github.com/docker/cli/pull/3486#discussion_r835121443 

The registry package contained code to automatically set the CertsDir() path, based on wether or not the daemon was running in rootlessmode. In doing so, it made use of the `pkg/rootless.RunningWithRootlessKit()` utility.

A recent change in de6732a403af49a18c754bb9de0abf18ad48e3c8 (https://github.com/moby/moby/pull/42330) added additional functionality in the `pkg/rootless` package, introducing a dependency on `github.com/rootless-containers/rootlesskit`. Unfortunately, the extra dependency also made its way into the docker cli, which also uses the registry package.

This patch introduces a new `SetCertsDir()` function, which allows the default certs-directory to be overridden, and updates the daemon to configure this location during startup.

**- Description for the changelog**
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->


**- A picture of a cute animal (not mandatory but encouraged)**


registry/config_windows.go
package registry // import "github.com/docker/docker/registry"

import (
	"os"
	"path/filepath"
	"strings"
)

// CertsDir is the directory where certificates are stored
func CertsDir() string {
	return os.Getenv("programdata") + `\docker\certs.d`
}

// cleanPath is used to ensure that a directory name is valid on the target
// platform. It will be passed in something *similar* to a URL such as
// https:\index.docker.io\v1. Not all platforms support directory names
// which contain those characters (such as : on Windows)
func cleanPath(s string) string {
	return filepath.FromSlash(strings.Replace(s, ":", "", -1))
}

package registry // import "github.com/docker/docker/registry"

import (
	"os"
	"path/filepath"
	"strings"
)

// defaultCertsDir is the platform-specific default directory where certificates
// are stored. On Linux, it may be overridden through certsDir, for example, when
// running in rootless mode.
var defaultCertsDir = os.Getenv("programdata") + `\docker\certs.d`

// cleanPath is used to ensure that a directory name is valid on the target
// platform. It will be passed in something *similar* to a URL such as
// https:\index.docker.io\v1. Not all platforms support directory names
// which contain those characters (such as : on Windows)
func cleanPath(s string) string {
	return filepath.FromSlash(strings.Replace(s, ":", "", -1))
}

```suggestion
const defaultCertsDir = os.Getenv("programdata") + `\docker\certs.d`
```