Look up types in our index rather than relying on XSD

Schema parsing can sometimes result in placeholder definitions being
created in memory. For instance, if you create a schema that uses
gml:GeometryPropertyType but don't import the GML schemas, a phony XSD
simple type will be created as a placeholder. When Encoder is trying to
find all the properties of a GeometryPropertyType, it will consult
SchemaIndex, which will in turn look at this placeholder and declare
that the element has no children.

With this patch, declare your schemas sans schemaLocation for your
imports. That way they should work offline as well and not be tied to
any particular GML version.