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.
Merge pull request #114 from bmabey/preserve-types-in-map-schemas

preserves the record type when validating a map-schema