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.
bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeManager.java
*/
	 ChangeManager(Realm realm) {
		Assert.isNotNull(realm, "Realm cannot be null"); 
		this.realm = realm;
	}
	/**
	 * @param listenerType
	 * @param listener
	 */
	protected void addListener(Object listenerType,
			IObservablesListener listener) {
		int listenerTypeIndex = findListenerTypeIndex(listenerType);
		if (listenerTypeIndex == -1) {
			int length;
			if (listenerTypes == null) {
				length = 0;
				listenerTypes = new Object[1];
				listenerLists = new ListenerList[1];
			} else {
				length = listenerTypes.length;
				System.arraycopy(listenerTypes, 0,
						listenerTypes = new Object[length + 1], 0, length);
				System
						.arraycopy(listenerLists, 0,
								listenerLists = new ListenerList[length + 1],
								0, length);
			}
			listenerTypes[length] = listenerType;
			listenerLists[length] = new ListenerList();
			boolean hadListeners = hasListeners();