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/internal/databinding/internal/ValueBindingTest.java
"Both binding events should be called the same number of times",
                calls[0], calls[1]);
        settableValue1.setValue(o1);
        assertEquals(o1, settableValue2.getValue());
        assertEquals(
                "Both binding events should be called the same number of times",
                calls[0], calls[1]);
        settableValue2.setValue(o2);
        assertEquals(
                "Both binding events should be called the same number of times",
                calls[0], calls[1]);
        assertEquals(o2, settableValue1.getValue());
        
        binding.addBindingEventListener(new IBindingListener() {
            public IStatus bindingEvent(BindingEvent e) {
                if (e.pipelinePosition == BindingEvent.PIPELINE_AFTER_CONVERT) {
                    return ValidationStatus.error("error");
                }
                return Status.OK_STATUS;
            }
        });
        settableValue1.setValue(o1);
        settableValue2.setValue(o2);
        assertEquals(
                "Both binding events should be called the same number of times",
                calls[0], calls[1]);
        assertEquals("binding events should be called at least once", true,
                calls[0] > 0);
    }
	private static class ObservableValueStub extends AbstractObservableValue {