[Sema] Diagnose floating point conversions based on target semantics

...instead of just comparing rank. Also, fix a bad warning about
_Float16, since its declared out of order in BuiltinTypes.def,
meaning comparing rank using BuiltinType::getKind() is incorrect.

Differential revision: https://reviews.llvm.org/D58254

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354190 91177308-0d34-0410-b5e6-96231b3b80d8
4 files changed