The installation is very fast, and this avoids having two copies of node
around. In particular, this avoids the need to monkey-patch uglify-js to
use the system node.
This can be further streamlined when #792 is merged
This allows changing various `run_docker` settings using env vars. The
primary one that I wanted was the ability to easily set the system port
used so that I could run two pyodide containers.
Before when running a second instance of `./run_docker`:
```
$ ./run_docker
docker: Error response from daemon: driver failed programming external connectivity on endpoint quirky_banach (45f5dd12606ac5d732a311ef3f3c378e359bbbd406a1c65915a300ec413eaf25): Bind for 0.0.0.0:8000 failed: port is already allocated.
```
With this PR:
```
$ PYODIDE_SYSTEM_PORT=8001 ./run_docker
root@29308e720856:/src#
```
I also broke the `docker run` command on to multiple lines (which I find
more readable; hopefully others agree) and added an `exec` to the
command, so the shell process on the host doesn't have to hang around
waiting for the container to exit.
Add ``serve`` module as a command line subcommand which enables us to start a server within the docker environment.
This is helpful in testing the ``pyodide`` builds running within the docker environment using external browser
programs of the same machine.