[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).
It would be better to name this more narrowly PYSPARK_WORKER_MEMORY_LIMIT