Fix display event handling via synchronization

The onEvent methods of DefaultDatasetView and DefaultImageDisplay that
call rebuild the display need to have their order preserved despite
being run on separate threads. To accomplish this, each runnable section
is now synchronized on the context.

This allows displays from different contexts to update asynchronously.

NB: this is a short term solution!

Ideally the synchronization would be handled within the rebuild() method
itself, but no solution doing so could be found. Specifically, the IJ1
thread would attempt to run plugins on the dataset not knowing it hadn't
finished updating. Further synchronization with the IJ1 thread could
resolve this issue.

However, since the full extent of this issue is not known and the code
is going to be rewritten anyway, we will continue to apply band-aids for
the time being.
DefaultDatasetView, DefaultImageDisplay: cleanUp

Applied the IJ2 template via cleanUp to these classes.