<!--- This environment context section helps us quickly review your PR. 
      Please take a minute to fill-out this information. -->
## Environment

**Liquibase Version**: 4.4.0

**Liquibase Integration & Version**: Maven

**Liquibase Extension(s) & Version**: None

**Database Vendor & Version**: All

**Operating System Type & Version**: Any


## Description

I am using XML changelog with <includeAll> for which path is mandatory in a zip file

```
<includeAll path="" relativeToChangelogFile="true" filter="my.XMLFilter"/>
```

I want to include all files in the directory of the changelog.
1. `<includeAll path="">` => Not working, is resolved to root of the zip archive
2. `<includeAll path=".">` => Not working, path is not normalized and ZipFileSystem does not resolve `myfolder/./` as `myfolder/`

## Steps To Reproduce

PR with unit Test to come...

## Actual Behavior
First case run into stack overflow
Second case does not find any file


## Expected/Desired Behavior
Expected behavior is to have the same behavior as regular file system


## Additional Context
Resolution can be to modify liquibase.resource.FileSystemResourceAccessor lines 237 - 239:

From 
```
                    if (path != null) {
                        basePath = basePath.resolve(path);
                    }
```
To
```
                    if (StringUtil.isNotEmpty(path)) {
                        basePath = basePath.resolve(path).normalize();
                    }
```





}
    }
    protected void handleChildNode(ParsedNode node, ResourceAccessor resourceAccessor)
            throws ParsedNodeException, SetupException {
        expandExpressions(node);
        String nodeName = node.getName();
        switch (nodeName) {
            case "changeSet":
                if (isDbmsMatch(node.getChildValue(null, "dbms", String.class))) {
                    this.addChangeSet(createChangeSet(node, resourceAccessor));
                }
                break;
            case "include": {
                String path = node.getChildValue(null, "file", String.class);
                if (path == null) {
                    throw new UnexpectedLiquibaseException("No 'file' attribute on 'include'");
                }
                path = path.replace('\\', '/');
                ContextExpression includeContexts = new ContextExpression(node.getChildValue(null, "context", String.class));
                LabelExpression labelExpression = new LabelExpression(node.getChildValue(null, "labels", String.class));
                Boolean ignore = node.getChildValue(null, "ignore", Boolean.class);
                try {
                    include(path,
                            node.getChildValue(null, "relativeToChangelogFile", false),
                            resourceAccessor,
                            includeContexts,
                            labelExpression,
                            ignore,
                            true);
                } catch (LiquibaseException e) {