[SPARK-4859][Streaming] Improve StreamingListenerBus

* Fix the race condition of `queueFullErrorMessageLogged`.
* Log the error from listener rather than crashing `listenerThread`.
This change seems fine to me, but we should probably apply the same fix to LiveListenerBus as well: https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/scheduler/LiveListenerBus.scala#L38