[SPARK-1740] [PySpark] kill the python worker

Kill only the python worker related to cancelled tasks.

The daemon will start a background thread to monitor all the opened sockets for all workers. If the socket is closed by JVM, this thread will kill the worker.

When an task is cancelled, the socket to worker will be closed, then the worker will be killed by deamon.
The other accesses of `daemonWorkers` are guarded by `synchronized` blocks; does this access also need synchronization?  It looks like calls to `stopWorker()` only occur from `destroyPythonWorker()`, which is synchronized using the SparkEnv object.  To be on the safe side, we should probably add `synchronized` here unless there's a good reason not to.