Reduces unread status changes to publish to the eventbus
at most once every 200ms per window. These events are
handled synchronously on the EDT so cause massive
performance issues.
When connecting to several bouncers with huge backbuffers
this makes the client usable in seconds rather than tens of minutes.
Internally this uses RX to handle the throttling, because it's
super easy. We might eventually want to expose that externally
instead of using an event bus, but I'm not sure.
Stop swimming against the tide and accept what most of the rest of
the world does.
While it adds an annoying depth to the actual source code, it makes
the root directory nicer (no more 'test-res' dirs), means we don't
have to override the gradle config, and makes it nicer to work in
IDEA 2016.1.
Instead of wrapping the source event and modifying it, they are
now proper events that are displayed themselves (and the original
message is suppressed).
This allows highlights to be formatted differently.
Issue #669