[SPARK-4859][Streaming] Improve StreamingListenerBus

* Fix the race condition of `queueFullErrorMessageLogged`.
* Log the error from listener rather than crashing `listenerThread`.
We might also want to apply this change to Spark Core's `LiveListenerBus` so that they're in sync.