Unify __declspec attribute argument parsing with the common attribute argument parsing code.

This removes a diagnostic that is no longer required (the semantic engine now properly handles attribute syntax so __declspec and __attribute__ spellings no longer get mismatched). This caused several testcases to need updating for a slightly different wording.

llvm-svn: 205234
diff --git a/clang/test/Sema/pragma-ms_struct.c b/clang/test/Sema/pragma-ms_struct.c
index 8cce4d7..e2c5ff1 100644
--- a/clang/test/Sema/pragma-ms_struct.c
+++ b/clang/test/Sema/pragma-ms_struct.c
@@ -59,5 +59,5 @@
 
 static int arr[sizeof(PackOddity) == 40 ? 1 : -1];
 
-__declspec(ms_struct) struct bad { // expected-warning {{unknown __declspec attribute 'ms_struct' ignored}}
+struct __declspec(ms_struct) bad { // expected-warning {{__declspec attribute 'ms_struct' is not supported}}
 };