Rename ABC_TARGET_API_BSD to ABC_TARGET_API_FREEBSD

It’s only used to enable FreeBSD-only code paths.
Rename ABC_TARGET_API_* back to ABC_HOST_API_*

After all, it makes more sense.
Reformat comments
Move fallback definition of __has_feature() to more appropriate block
Rename compiler detection ABC_HOST_* constants to ABC_HOST_CXX_*
Reorder sections for clarity
Add ABC_HOST_ARCH_* constants for CPU architecture detection
Simplify detection of ABC_HOST_*_ENDIAN
Use ABC_HOST_ARCH_* in place of compiler-dependent constants