### 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)

magic = f->get_32();
			if (magic == PACK_HEADER_MAGIC) {
#ifdef DEBUG_ENABLED
				print_verbose("PCK header found at the end of executable, loading from offset 0x" + String::num_int64(f->get_position() - 4, 16));
#endif
				pck_header_found = true;
			}
		}
	}
	if (!pck_header_found) {
		return false;
	}
	uint32_t version = f->get_32();
	uint32_t ver_major = f->get_32();
	uint32_t ver_minor = f->get_32();
	f->get_32(); 
	ERR_FAIL_COND_V_MSG(version != PACK_FORMAT_VERSION, false, "Pack version unsupported: " + itos(version) + ".");
	ERR_FAIL_COND_V_MSG(ver_major > VERSION_MAJOR || (ver_major == VERSION_MAJOR && ver_minor > VERSION_MINOR), false, "Pack created with a newer version of the engine: " + itos(ver_major) + "." + itos(ver_minor) + ".");
	uint32_t pack_flags = f->get_32();
	uint64_t file_base = f->get_64();
	bool enc_directory = (pack_flags & PACK_DIR_ENCRYPTED);
	for (int i = 0; i < 16; i++) {
		
		f->get_32();
	}
	int file_count = f->get_32();
	if (enc_directory) {
		Ref<FileAccessEncrypted> fae;
		fae.instantiate();
		ERR_FAIL_COND_V_MSG(fae.is_null(), false, "Can't open encrypted pack directory.");