MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside it's own section and mark
the section as IMAGE_COMDAT_SELECT_ANY.  However, we can only do this if the
string has an external name that we can generate from it's contents.

To be compatible with MSVC, we must use their scheme.  Otherwise identical
strings in translation units from clang may not be deduplicated with
translation units in MSVC.

This fixes PR18248.

N.B. We will not attempt to do anything with a string literal which is not of
type 'char' or 'wchar_t' because their compiler does not support unicode
string literals as of this date.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204562 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: cleanup /vd2 test

/vd2 is not ignored anymore, remove it from the ignored list.

Add a test to ensure that it does the right thing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204563 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: Map /Gy to -ffunction-sections

/Gy is equivalent to -ffunction-sections.
/Gy- is equivalent to -fno-function-sections.

Currently, LLVM doesn't do anything interesting with -ffunction-sections
under WinCOFF.

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