PR17052 / DR1560 (+DR1550): In a conditional expression between a glvalue and a
throw-expression, the result is also a glvalue and isn't unnecessarily coerced
to a prvalue.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200189 91177308-0d34-0410-b5e6-96231b3b80d8
Use ConstStringRef facility for getCustomDiagID() safety

This is one of various functions in clang that don't handle arbitrary strings
well and can benefit from compile-time safety checks.

Also fixes an off-by-one error that caused one additional null byte to get
added to the end of custom diagnostic descriptions. ConstStringRef handles
tricky details like that for us now.

Requires supporting changes in LLVM r200187.

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