SwingIconService: be nicer about button linkages

If a button linkage doesn't exist, fail gracefully rather than throwing
an exception that halts the thread.

This change avoids an exception when displaying a dataset in a Swing
display viewer, when the Swing UI itself is not visible.
UserInterface: show new displays using the EDT

If we don't do this, at least with Swing, JHotDrawImageCanvas throws an
exception in its sync(boolean) method. The sanity check there is not
spurious; the syncing really doesn't work when not run from the EDT.

It is possible that in the future, there will be a UI that is
thread-safe, such that new displays can be shown off the EDT. If/when
that occurs, we can refactor the code to do the right thing. But for
now, this solution suffices.
Merge branch 'fix-headless-display'

This branch fixes ticket #1550: "IJ2 tutorials broken"

It fixes a couple of different problems that were occurring when
attempting to show a display with no UI currently visible.