[STREAMING] SPARK-4986 Wait for receivers to deregister and receiver job to terminate

Spark Streaming does not wait for all receivers to deregister and the receiver job to terminate before killing spark context which can cause data loss. This PR solves this by waiting for all receivers in ReceiverTracker stop function when using graceful shutdown.

This together with https://github.com/apache/spark/pull/3857 fixes SPARK-4986.