`check' target will now abort immediately on test case failure to avoid overwriting core dumps
Added FAILLOC and ASSERT_GCC macros for tests

This macro uses a GCC extension (well, two extensions) to support wrapping any
expression in the FAILLOC macro. The first argument must be the type of the
expression. Memory allocation using malloc and realloc (note that I don't have
others in here yet) will fail during execution of the expression, so this can be
used to test handling of allocation failures. For example:

  ASSERT_GCC(FAILLOC(some_allocating_func()) == NULL);

The macro ASSERT_GCC was added to denote tests that shall only be run when
compiling with GCC; this is necessary for FAILLOC beacuse it uses the ({})
syntax, which is a GCC extension.
Existing winmsgbuf tests now test for allocation failures