Bug 211786 [DataBinding] ComputedList refinements
Patch to follow which refines how staleness is handled with ComputedList's dependencies.
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ComputedList.java
* Subclasses must override this method to calculate the list contents.
	 * 
	 * @return the object's list.
	 */
	protected abstract List calculate();
	private void makeDirty() {
		if (!dirty) {
			dirty = true;
			stopListening();
			
			final List oldList = new ArrayList(cachedList);
			
			
			fireListChange(new ListDiff() {
				ListDiffEntry[] differences;
				public ListDiffEntry[] getDifferences() {
					if (differences == null)
						differences = Diffs.computeListDiff(oldList, getList())
								.getDifferences();
					return differences;
				}
			});
		}
	}
	private void stopListening() {
		if (dependencies != null) {
			for (int i = 0; i < dependencies.length; i++) {
				IObservable observable = dependencies[i];
				observable.removeChangeListener(privateInterface);
				observable.removeStaleListener(privateInterface);