Introduce a DialogProvider.

This fixes the issues with injection of dialogs and the behaviour of @Singleton.

Move the swing injection related classes into a new package (a new DialogModule
will follow shortly to make use of the DialogProvider).

Also introduce a SwingPreconditions class for asserting method calls are made
on/off the EDT.

Change-Id: I92010f61f2289579603a239ab46b0a304799dedc
Reviewed-on: http://gerrit.dmdirc.com/3044
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>