Fix pyfetch when there is a cors error. As pointed out by @ryanking13 in https://github.com/pyodide/pyodide/pull/2589#discussion_r878950933:
If `pyfetch` generates a cors error, it is thrown as a `JsException` rather than as an `OSError`.

### Checklists

- [x] Add a [CHANGELOG](https://github.com/pyodide/pyodide/blob/main/docs/project/changelog.md) entry
- [x] Add / update tests

# setup: import numpy as np ; N = 1000 ; a = np.arange(0,1,N)
# run: smoothing(a, .4)
# from: http://www.parakeetpython.com/

# pythran export smoothing(float[], float)


def smoothing(x, alpha):
    """
    Exponential smoothing of a time series
    For x = 10**6 floats
    - Python runtime: 9 seconds
    - Parakeet runtime: .01 seconds
    """
    s = x.copy()
    for i in range(1, len(x)):
        s[i] = alpha * x[i] + (1 - alpha) * s[i - 1]
    return s

# setup: import numpy as np ; N = 1000 ; a = np.arange(0,1,N)
# run: smoothing(a, .4)
# from: http://www.parakeetpython.com/

# pythran export smoothing(float[], float)


def smoothing(x, alpha):
    """
    Exponential smoothing of a time series
    For x = 10**6 floats
    - Python runtime: 9 seconds
    - Parakeet runtime: .01 seconds
    """
    s = x.copy()
    for i in range(1, len(x)):
        s[i] = alpha * x[i] + (1 - alpha) * s[i - 1]
    return s
