FIXED crash on `browser.destroy` for EventSource (#807)

Changes v1..v2:
  * more simple state
  * hijack `emit` instead of using `new/removeListener` API
The way Zombie works, the browser only runs the even loop while you're explicitly waiting for it, and suspends the event loop when you're not waiting.

So if the test case stopped waiting, presumably the event loop is paused, except the server can keep streaming data, which EventSource will keep parsing, triggered events, and if those events fire, you get unexpected behavior that is inconsistent with the rest of Zombie.