Split out header integration tests

These are somewhat arbitrary tests that check if "thing goes fine" when
processing various platform-specific headers.

Also move warn-sysheader.cpp to Misc where the other diagnostics infrastructure
tests live.

File moves only.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207936 91177308-0d34-0410-b5e6-96231b3b80d8
New __attribute__((pod_assign)) forces C assign

Considering this code:

  typedef struct Point { float x, y; } Point;
  float test(int i, //
             __attribute__((address_space(1))) const Point *in,
             __attribute__((address_space(1))) Point *out) {
    __attribute__((pod_assign)) Point r = in[i];
    out[i] = r;
    return r.x * r.y;
  }

Regardless if type is POD or not C++ always try to use constructor when doing
assignment, which make C++ unable to perform copy from other address space,
which is possible when using C.

This attribute marks certain structure type variables to be initialized by
plain C style assignment, resulting similar casts as in C mode.