fix: match file path url escaping during build and serve (#70256)
### What?
This fixes file path encoding differences between build and serve.
Currently, file paths that get encoded via `encodeURIPath` (which uses
`encodeURIComponent`):
https://github.com/vercel/next.js/blob/c3475da0686eecbf9acc9b004e579a8e67288d70/packages/next/src/server/app-render/create-component-styles-and-scripts.tsx#L59-L61
But when matching files to serve, we use `encodeURI`:
https://github.com/vercel/next.js/blob/c3475da0686eecbf9acc9b004e579a8e67288d70/packages/next/src/server/lib/router-utils/filesystem.ts#L191
This means that any file which contains reserved characters according to
[RFC2396](https://datatracker.ietf.org/doc/html/rfc2396) will not match
correctly.
```
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
```
Closes PACK-3266