libfoundation: Synchronise with MLC branch.
Merge pull request #1536 from peter-b/develop

libfoundation: Synchronise MLC changes to 'develop' branch.
libfoundation: Define pointer type limit macros correctly on LLP64.
libfoundation: Ensure that SIZE_MAX and SIZE_MIN are defined.

These are defined by default on OS X but not on Linux (because
stdint.h is automatically included by the OS X compiler).
libfoundation: Use MCValueIsRecord() instead of __MCTypeInfoGetTypeCode().
    
The latter function was removed in the MLC branch.
libfoundation: MCHandlerTypeFieldInfo no longer has a 'name' member.

Look for the custodian in the 'type' member instead.
libfoundation: Include <ffi.h> without 'ffi' directory.

This more closely matches the libffi headers' standard installation path.
libfoundation: Update Makefiles with new source files from MLC branch.
[[ Build ]] Linux: Temporarily use system libffi.

Before the next release it will be necessary to import the Linux
libffi source files into thirdparty.
Update thirdparty submodule with libffi import.
[[ Build ]] OS X: Add rules for building libffi into engine.
[[ Build ]] OS X: Temporary disable foundation-filters.cpp.

This avoids duplicate symbol errors when linking.
[[ Build ]] OS X: Use global header search path for libfoundation.

This entails adding prebuilt/include to the global header search
path.
Merge pull request #1538 from peter-b/develop

libfoundation build fixes for Linux and OS X.
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.