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_PLATFORM_FREEBSD` 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`.