Blockingly drain all events in LiveListenerBus#stop().

This PR attempts to implement the proposal discussed in #221.

Some notes:
- Also, move bus.stop() call to the end of sc.stop(), so that slow
    listeners would not affect the cleaning of other states.
- LiveListenerBus.scala: newline changes from CRLF to LF.
- Add a test to track the draining behavior. I've (1) used the patch to test my application mentioned in the old PR, and    it worked as expected, and (2) run the new test without this patch, and it fails as expected.

@kayousterhout @pwendell @andrewor14: do you guys mind reviewing this?