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/DatabindingContextTest.java
IObservableValue target = new WritableValue(String.class);
		IObservableValue model = new WritableValue(String.class);
		Binding binding = dbc.bindValue(target, model, null);
		assertTrue("binding is of the incorrect type",
				binding instanceof ValueBinding);
	}
	public void testBindList() throws Exception {
		DataBindingContext dbc = new DataBindingContext();
		IObservableList target = new WritableList();
		IObservableList model = new WritableList();
		Binding binding = dbc.bindList(target, model, null);
		assertTrue("binding is of the incorrect type",
				binding instanceof ListBinding);
	}
	public void testWithDefaults() throws Exception {
		DataBindingContext dbc = new DataBindingContext();
		assertNotNull("context was not initialized with defaults", dbc
				.createConverter(String.class, String.class));
	}
	/**
	 * Asserts that IStatus is populated and change events are fired when a
	 * Binding that is associated with a context is in error.
	 * 
	 * @throws Exception
	 */
	public void testValidationError() throws Exception {
		WritableValue targetObservable = new WritableValue(String.class);
		WritableValue modelObservable = new WritableValue(String.class);
		final String errorMessage = "error";
		DataBindingContext dbc = new DataBindingContext();