This allows windows to be uniquely identified and shared with
clients that are running outside of the DMDirc process (e.g.
a web UI, or a remote instance).
Despite its name and description, the WindowManager relied on
each FrameContainer having a reference to its parents and all
its children.
The WindowManager now stores this information itself, and so
the FrameContainer methods can be gradually phased out.
This is horribly icky and wrong. The only place it's used is
PluginFilesHelper, which can easily be given its own manager.
Also fix annoying shaded import.
Alternative highlights were never added because the maps were
optimised away; then the list occasionally ended up with null
entries as they were added concurrently.
This adds a sendLine method to Connection, which is a bit icky,
but is useful when the end-user is supplying lines to pass
directly to the underlying connection.
This introduces a CachingDocument which wraps around an IRCDocument
and allows UI-specific caching of UI-specific styled lines (so, e.g.
the web UI could cache HTML versions if it wanted).
Also adds a delegating message maker and attributed string maker,
which incorporates the old "make a StyledDoc then change it into
an AttributedString" logic found in ui.core.util.Utils.
Hopefully this should mean all the the swing stuff can be punted
into the swing UI. The delegated maker will also allow colouring
of the new events to be done sensibly, I think.