libfoundation: MCRecordTypeInfoIsDerivedFrom() should use MCTypeInfoConforms().

It's best to only have one implementation of the same algorithm!
libfoundation: Correct MCRecordHash logic.

Two record values are only the same if they have the same named
typeinfo, and the same values in each field.

This makes it less likely that __MCRecordHash(a) == __MCRecordHash(b)
when __MCRecordIsEqualTo(a,b) == false.
Merge pull request #1540 from peter-b/develop

libfoundation: MCRecord fixes.