Merge pyodide_py into python_stdlib.zip. ### Description

Merges pyodide_py.tar into python_stdlib.zip. This reduces the number of network requests during the initialization.

The original intention of splitting pyodide_py.tar from pyodide.asm.data was to give users an option to provide custom files (#2023), which is now available by modifying python_stdlib.zip directly. So I think there is no reason to have both python_stdlib.zip and pyodide_py.tar.

### Checklists

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

<!-- Bootstrap HTML for running the unit tests. -->
<!doctype html>
<html>
  <head>
    <title>pyodide</title>
    <script type="text/javascript">
      window.logs = [];
      console.log = function (message) {
        window.logs.push(message);
      };
      console.warn = function (message) {
        window.logs.push(message);
      };
      console.info = function (message) {
        window.logs.push(message);
      };
      console.error = function (message) {
        window.logs.push(message);
      };
      console.debug = function (message) {
        window.logs.push(message);
      };
    </script>
    <script src="./pyodide.js"></script>
  </head>
  <body></body>
</html>

<!-- Bootstrap HTML for running the unit tests. -->
<!doctype html>
<html>
  <head>
    <title>pyodide</title>
    <script type="text/javascript">
      window.logs = [];
      console.log = function (message) {
        window.logs.push(message);
      };
      console.warn = function (message) {
        window.logs.push(message);
      };
      console.info = function (message) {
        window.logs.push(message);
      };
      console.error = function (message) {
        window.logs.push(message);
      };
      console.debug = function (message) {
        window.logs.push(message);
      };
    </script>
    <script src="./pyodide.js"></script>
  </head>
  <body></body>
</html>
