### Godot version

4.0.3

### System information

Windows 10

### Issue description

When loading files from a `pck` generated by Godot, file paths must match the exact string path that they were packed in.

Usually when loading files using `FileAccess`, redundant `/`s will be handled correctly. For example, `res://my//path////here` will resolve to `res://my/path/here`. This is not true for `pck`s.

---

Assuming the default `icon.svg` file has been moved into a new directory at `res://assets/`

```gdscript
# This is valid
FileAccess.open("res://assets/icon.svg", FileAccess.READ)
# This is also valid
FileAccess.open("res://assets//////icon.svg", FileAccess.READ)
```

When loading from a `pck`, the path must match exactly.

```gdscript
var packer := PCKPacker.new()
packer.pck_start("res://test.pck")
packer.add_file("res://my//path/icon.svg", "res://assets/icon.svg")
packer.flush()

ProjectSettings.load_resource_pack("res://test.pck")

# This is valid
FileAccess.open("res://my//path/icon.svg", FileAccess.READ)

# This is not valid
FileAccess.open("res://my/path/icon.svg", FileAccess.READ)
# This is also not valid
FileAccess.open("res://my//path/////icon.svg", FileAccess.READ)
```

### Steps to reproduce

Create a `pck` file and start adding files.

Load the `pck` and try to access files with redundant `/`s (or with the correct number of `/`s, if the files were added with redundant `/`s).

### Minimal reproduction project

Available as a repo here: https://github.com/you-win/pck-loading-inconsistency

Available as a zip:
[pck_loading_inconsistency.zip](https://github.com/godotengine/godot/files/11525206/pck_loading_inconsistency.zip)

if (i * 2 + 1 < _key.length()) {
			char32_t ct = _key[i * 2 + 1];
			if (is_digit(ct)) {
				ct = ct - '0';
			} else if (ct >= 'a' && ct <= 'f') {
				ct = 10 + ct - 'a';
			}
			v |= ct;
		}
		key.write[i] = v;
	}
	enc_dir = p_encrypt_directory;
	file = FileAccess::open(p_file, FileAccess::WRITE);
	ERR_FAIL_COND_V_MSG(file.is_null(), ERR_CANT_CREATE, "Can't open file to write: " + String(p_file) + ".");
	alignment = p_alignment;
	file->store_32(PACK_HEADER_MAGIC);
	file->store_32(PACK_FORMAT_VERSION);
	file->store_32(VERSION_MAJOR);
	file->store_32(VERSION_MINOR);
	file->store_32(VERSION_PATCH);
	uint32_t pack_flags = 0;
	if (enc_dir) {
		pack_flags |= PACK_DIR_ENCRYPTED;
	}
	file->store_32(pack_flags); 
	files.clear();
	ofs = 0;
	return OK;
}
Error PCKPacker::add_file(const String &p_file, const String &p_src, bool p_encrypt) {