Bug 157174 [Viewers] Refactor new Viewer API
We are yet not completely happy with the API and refactor it.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
* <code>IBaseLabelProvider</code> method adds the listener to both the
	 * nested label provider and the label decorator.
	 * 
	 * @param listener
	 *            a label provider listener
	 */
	public void addListener(ILabelProviderListener listener) {
		super.addListener(listener);
		getLabelProvider().addListener(listener);
		if (decorator != null) {
			decorator.addListener(listener);
		}
		listeners.add(listener);
	}
	/**
	 * The <code>DecoratingLabelProvider</code> implementation of this
	 * <code>IBaseLabelProvider</code> method disposes both the nested label
	 * provider and the label decorator.
	 */
	public void dispose() {
		getLabelProvider().dispose();
		if (decorator != null) {
			decorator.dispose();
		}
	}
	/**
	 * The <code>DecoratingLabelProvider</code> implementation of this
	 * <code>ILabelProvider</code> method returns the image provided by the
	 * nested label provider's <code>getImage</code> method, decorated with
	 * the decoration provided by the label decorator's