[SPARK-3888] [PySpark] limit the memory used by worker

The memory limit of Python worker can be configurable by `spark.executor.python.memory.limit` (in MB), which is 0 by default (means unlimited).

it only works in Linux, so I did not put it in the docs, it will be useful for some advanced users (also no tests).
In python worker, it can not access JVM, so can not access conf. The environment variable is used internal, not public.

Right now, the only way to pass configuration to python worker is environment variable.