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.
libfoundation: __MCForeignValueInitialize: Correctly initialize pointer type.
Revert "libfoundation: Correct MCRecordHash logic."

This reverts commit 48cace92fca6d4263806d4f0d1700147488545cc.
Merge pull request #1541 from peter-b/develop

libfoundation: __MCForeignValueInitialize: Correctly initialize pointer type.
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.

This is a corrected version of commit 48cace92fca6.
Merge pull request #1542 from peter-b/develop

libfoundation: MCRecord fixes.
[[ Build ]] Linux: server should link against libffi.

As per commit e986da57603b, temporarily use the system version of
libffi on Linux until we get round to importing libffi for Linux into
thirdparty.
[[ Valgrind ]] Add memcheck hints when cleaning up memory pools at exit.

This avoids a false positive from Valgrind during __MCValueFinalize().
Merge pull request #1550 from peter-b/misc-valgrindmemcheck

[[ Valgrind ]] Add memcheck hints when cleaning up memory pools at exit.
Merge pull request #1552 from peter-b/develop

[[ Build ]] Linux: server should link against libffi.