Resolves #761.

ssl passes 46/168 tests. 108 fail due to inability to start a socket and another 14 failing with attribute errors due to missing library functions.

### Checklists

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

Add cryptography, openssl, and _ssl packages. Resolves #761.

ssl passes 46/168 tests. 108 fail due to inability to start a socket and another 14 failing with attribute errors due to missing library functions.

### Checklists

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

from pyodide_build.testing import set_webdriver_script_timeout


class _MockSelenium:
    script_timeout = 2

    def set_script_timeout(self, value):
        self._timeout = value


def test_set_webdriver_script_timeout():
    selenium = _MockSelenium()
    assert not hasattr(selenium, "_timeout")
    with set_webdriver_script_timeout(selenium, script_timeout=10):
        assert selenium._timeout == 10
    assert selenium._timeout == 2

from pyodide_build.testing import set_webdriver_script_timeout


class _MockSelenium:
    script_timeout = 2

    def set_script_timeout(self, value):
        self._timeout = value


def test_set_webdriver_script_timeout():
    selenium = _MockSelenium()
    assert not hasattr(selenium, "_timeout")
    with set_webdriver_script_timeout(selenium, script_timeout=10):
        assert selenium._timeout == 10
    assert selenium._timeout == 2
