Bug 255734 [DataBinding] DecoratingObservable should self-dispose when the decorated observable is disposed
DecoratingObservable should dispose itself in response to the disposal of its decorated observable. One thing we'll have to address is that all existing observables may call firstListenerAdded() / lastListenerRemoved() in response to an addDisposeListener() / removeDisposeListener() call. We should try to eliminate this case to avoid hooking listeners when all we're interested in is disposal.
tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/AbstractObservableTest.java
int count;
		IObservable source;
		public void handleStale(StaleEvent event) {
			count++;
			this.source = event.getObservable();
		}
	}
	public static Test suite() {
		TestSuite suite = new TestSuite(AbstractObservableTest.class.getName());
		suite.addTestSuite(AbstractObservableTest.class);
		Delegate delegate = new Delegate();
		suite.addTest(ObservableContractTest.suite(delegate));
		suite.addTest(ObservableStaleContractTest.suite(delegate));
		return suite;
	}
	static class Delegate extends
			AbstractObservableContractDelegate {
		public void change(IObservable observable) {
			((ObservableStub) observable).fireChange();
		}
		public void setStale(IObservable observable, boolean stale) {
			((ObservableStub) observable).setStale(stale);
		}
		public IObservable createObservable(Realm realm) {
			return new ObservableStub(realm);
		}
	}
	private static class ObservableStub extends AbstractObservable {