#940: cylc gui: optimise tree view updating.

This closes #940.

The previous behaviour of the tree view on update was to clear the tree
model then rebuild it. This caused a noticeable blip for largish suites
and made it difficult to focus on a particular row.

The new behaviour is to update the tree view in place if possible (if
there has been no structural changes), or to carefully reconstruct it
when there are structural changes. This is done piece by piece rather
than clearing and rebuilding from scratch.

The time taken to update the tree is much reduced for most updates,
but slightly more when a reconstruction is necessary. In all cases it is
no longer as jumpy.
The next few lines of code come from the 'removed' block below.