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.
tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanBindSupportFactory.java
* part of a work in progress. There is no guarantee that this API will remain
 * unchanged during the 3.2 release cycle. Please do not use this API without
 * consulting with the Platform/UI team.
 * 
 * @since 3.2
 */
public class CustomBeanBindSupportFactory extends BindSupportFactory {
	private final DataBindingContext parentContext;
	public CustomBeanBindSupportFactory(DataBindingContext parentContext) {
		this.parentContext = parentContext;
	}
	public IConverter createConverter(Object fromType, Object toType) {
		if (fromType instanceof CustomBeanModelType) {
			CustomBeanModelType customBeanModelType = (CustomBeanModelType) fromType;
			fromType = customBeanModelType.getType();
		}
		if (toType instanceof CustomBeanModelType) {
			CustomBeanModelType customBeanModelType = (CustomBeanModelType) toType;
			toType = customBeanModelType.getType();
		}
		return parentContext.createConverter(fromType, toType);
	}
	public IValidator createDomainValidator(Object modelType) {
		if (modelType instanceof CustomBeanModelType) {
			CustomBeanModelType property = (CustomBeanModelType) modelType;
			String propertyName = property.getPropertyName();
			String getValidatorMethodName = "get" + upperCaseFirstLetter(propertyName) + "Validator"; 
			Class objectClass = property.getObject().getClass();
			Method getValidator;
			try {