Added handling of extensions of types

Added handling of extensions on complex types.
A few test cases
Handling of free floating elements on the schema level
The ability to flag that eventhough unsupported features are used in the
schema the provider should do it's best to provide a matching type
(useful e.g. when there's a restriction on the valid values of an
otherwise correctly typed property)