MS ABI: Add an additional test for empty structs in C

Empty structs in C differ from those in C++.
- C++ requires that empty types have size 1; alignment requirements may
  increase the size of the struct.
- The C implementation doesn't let empty structs have a size under 4
  bytes.  Again, alignment requirements may increase the struct's size.

Add a test to stress these differences.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@218963 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Clean up test to not use dllexport, check vftable entries

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