testsuite: Common up the ifdef blocks for compiler-specific macros
testsuite: Introduce a __STDCALL__ compiler-specific macro

Several tests want to use stdcall, which differs in syntax by compiler,
so introduce a macro for it in ffitest.h.
testsuite: Introduce a __THISCALL__ compiler-specific macro
testsuite: Factor out a function to run a matrix of tests

This commons up code from libffi.call/call.exp and
libffi.special/special.exp, unifies the optimization option matrix
between the two, and makes it easier to add more axes to the matrix
in the future.
testsuite: ffitest.h: Parenthesize the CHECK macro
testsuite: Unify the C and C++ testsuites

These two testsuites differ only in the source file glob and a couple of
additional compiler options; unify the remaining bits.
testsuite: Replace ffitestcxx.h with ffitest.h

ffitest.h contains a superset of the functionality of ffitestcxx.h;
make the C++ tests include ffitest.h instead, and remove ffitestcxx.h.
testsuite: Add ABIs to the test matrix; unify tests across ABIs

This eliminates all the *_win32.c tests in favor of the tests they were
branched from, and expands test coverage to run many more tests on
stdcall, thiscall, and fastcall.

This same mechanism also supports testing any other target that has
multiple ABIs.
Merge pull request #102 from joshtriplett/test-generic

Add ABIs to the test matrix; unify many bits of the testsuite
Various compatibility fixes and improvements to msvcc.sh.

* Don't try to mix incompatible optimization flags in debug builds.
* Workaround ax_cc_maxopt.m4 not supporting MSVC and change -O3 to -O2.
* Fix MSVC warning by properly passing linker flags to compiler.
* Make msvcc.sh return 1 if invalid command line options are used rather than silently eating them.
* Add more comments.
Merge pull request #107 from rvandermeulen/msvcc

Various compatibility fixes and improvements to msvcc.sh.