Bug 38782 TreeViewer add calls a refresh
Our implementation of TreeViewer.add is naive and can all a refresh of the entire tree. It should be more like TableViewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
* The selection is updated if necessary.
	 * <p>
	 * This method should be called (by the content provider) when a single element 
	 * has been removed from the model, in order to cause the viewer to accurately
	 * reflect the model. This method only affects the viewer, not the model.
	 * Note that there is another method for efficiently processing the simultaneous
	 * removal of multiple elements.
	 * </p>
	 *
	 * @param element the element
	 */
	public void remove(Object element) {
		remove(new Object[] { element });
	}
	/**
	 * Removes all items from the given control.
	 *
	 * @param control the control
	 */
	protected abstract void removeAll(Control control);
	/**
	 * Removes a listener for expand and collapse events in this viewer.
	 * Has no affect if an identical listener is not registered.
	 *
	 * @param listener a tree viewer listener
	 */
	public void removeTreeListener(ITreeViewerListener listener) {
		treeListeners.remove(listener);
	}
	/*