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
public void testGetBindingsImmutability() throws Exception {
		DataBindingContext dbc = new DataBindingContext();
		BindingStub binding = new BindingStub(null);
		dbc.addBinding(binding);
		try {
			dbc.getBindings().remove(0);
			fail("exception should have been thrown");
		} catch (UnsupportedOperationException e) {
		}
	}
	public void testRemoveBinding() throws Exception {
		BindingStub binding = new BindingStub(null);
		DataBindingContext dbc = new DataBindingContext();
		dbc.addBinding(binding);
		assertTrue("context should contain the binding", dbc.getBindings()
				.contains(binding));
		assertTrue("removing the factory should return true", dbc
				.removeBinding(binding));
		assertFalse("binding should have been removed", dbc.getBindings()
				.contains(binding));
		assertFalse("when not found false should be returned", dbc
				.removeBinding(binding));
	}
	/**
	 * {@link IValueChangeListener} implementation that counts the times
	 * handleValueChange(...) is invoked.
	 * 
	 * @since 3.2
	 */
	private static class ValueChangeCounter implements IValueChangeListener {