If a target doesn't support long double, e.g., a GPU, it should not
expose the builtins that deal with them in the first place. This patch
also adjusts __has_builtin to return false in those cases.
This is a first step to fix PR48923, second is to adjust libcxx and
add the __has_builtin guards.