Creates a new data object for the given type. The type is required
to be a data object type that is not abstract.
aType.isInstance( newInstance( aType ) ) should always return true.
If no instance can be created, null should be returned.
aType - the type for which to create a new instance