Clean up the __has_attribute implementation without modifying its behavior. 

Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes).

Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204952 91177308-0d34-0410-b5e6-96231b3b80d8
Recognize simple cases of trivial explicitly defaulted public dtors as irrelevant

Reviewed in http://llvm-reviews.chandlerc.com/D3190

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204953 91177308-0d34-0410-b5e6-96231b3b80d8
Don't emit exit-time destructor warnings for trivial explicitly defaulted dtors

This commit also adds an additional test case for the global destructor warning.

Reviewed in http://llvm-reviews.chandlerc.com/D3205

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204954 91177308-0d34-0410-b5e6-96231b3b80d8
Reverting r204952, while I figure out what's going on with the makefile build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204955 91177308-0d34-0410-b5e6-96231b3b80d8
Support for -Wa,-compress-debug-sections.

Also, while I'm here, support -nocompress-debug-sections too.

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