Bug 167450 [DataBinding] Get rid of bind support factory magic
I finally realized that we don't need that other magic factory. I'll move fillBindSpecDefaults() and the methods it calls (createConverter, createValidator etc) to a new class DefaultBindSpec. Clients who want default validators and converters created for them just create a DefaultBindSpec as opposed to a (rather empty) BindSpec. I will also move the early type checking into DefaultBindSpec to make it optional as well.
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/DataBindingContext.java
* Binds two observable values using converter and validator as specified in
	 * bindSpec. If bindSpec is null, a default converter and validator is used.
	 * 
	 * @param targetObservableValue
	 * @param modelObservableValue
	 * @param bindSpec
	 *            the bind spec, or null. Any bindSpec object must not be reused
	 *            or changed after it is passed to #bind.
	 * @return The Binding that manages this data flow
	 */
	public Binding bindValue(IObservableValue targetObservableValue,
			IObservableValue modelObservableValue, BindSpec bindSpec) {
		if (bindSpec == null) {
			bindSpec = new DefaultBindSpec();
		}
		fillBindSpecDefaults(this, bindSpec, targetObservableValue
				.getValueType(), modelObservableValue.getValueType());
		Binding result = new ValueBinding(this, targetObservableValue,
				modelObservableValue, bindSpec);
        bindings.add(result);
		return result;
	}
	/**
	 * Binds two observable lists using converter and validator as specified in
	 * bindSpec. If bindSpec is null, a default converter and validator is used.
	 * 
	 * @param targetObservableList
	 * @param modelObservableList
	 * @param bindSpec
	 *            the bind spec, or null. Any bindSpec object must not be reused