Add FreeBSD support to the codebase.

The FreeBSD-specific compatibility changes are invoked when the
__FreeBSD__ macro is defined, which is the default for (I think all?)
toolchains on FreeBSD. This turns on the BX_FREEBSD_PLATFORM macro which
can be used for further specializations.

FreeBSD is a mix between Linux, NaCl and OSX, with some extra cavaets that
have been worked around:

 * malloc.h is deprecated; FreeBSD uses stdlib.h instead.
 * alloca.h doesn't exist; it's also in stdlib.h.