adds -fseh-exceptions and -fdwarf-exceptions flags
clang will check if the user has specified an exception model flag,
in the absense of specifying the exception model clang will then check
the driver default and append the model flag for that target to cc1
clang cc1 assumes dwarf is the default if none is passed
and -fno-exceptions has a higher priority then specifying the model
move SEH macro definitions out of Targets into InitPreprocessor
behind the -fseh-exceptions flag
move ARM_DWARF_EH macrodefinitions out of verious targets and into
InitPreprocessor behind the -fdwarf-exceptions flag and arm|thumb check
remove unused USESEHExceptions from the MinGW Driver
fold USESjLjExceptions into a new GetExceptionModel function that
gives the toolchain classes more flexibility with eh models.
if a toolchain does not specify the exception model make a best guess based
what llvm does for that triple with the assembler much like cc1as.
It looks like this broke some buildbot after all - see e.g. http://lab.llvm.org:8011/builders/sanitizer-windows/builds/20371.
Perhaps it's best to just have the default here be None even for Windows, and just let it be overridden for MinGW? I don't think we did define __SEH__ at all when targeting MSVC before either, so it should be fine to just leave it unset and not override anything from the backend defaults here.