preserves the record type when validating a map-schema

Perseving the type is required in some cases when other schemas, in a
composite schema,  are relying on the type information being present
(e.g. s/protocol). See the new test case for an example of this.