relay: fix some corner cases when parsing messages for spans
relay: start dealing with disconnects maturely

* don't simply remove old channel buffers - retain snapshots they can be used later
* rejoin previous channels when a disconnect occurs
relay: major cleanup of code
relay: cleanup code
relay: cleanup code & gradle
relay: prefer composition to inheritance
relay: cleanup
relay: multiple updates

* refactor code to make vars clearer
* parcel and unparcel id of builder
* fix NPE when server was disconnected without full connection
relay: multiple updates

* use composition rather than inheritance - remove user class & replace with immutable nick class
* start making colour calculation depend on nick itself
relay: reformat code
holoirc: change SubServerObject to Conversation to make it more generic
relay: make quote the same as raw when parsing user commands
relay: send connectingevent when required
relay: switch to using EventBus on ServerEventBus
relay: fix bug where if there nick displayed if th user sends a PM was wrong

* it would be the nick of the person the PM was being sent to
relay: remove mentionevent - just route stuff through other events
relay: fix equality check of Channel
relay: simplify ChannelSnapshot handling
relay: add events for private message being opened and optionally for being closed
relay: cleanup