Explicitly include portable/macros.h where used

Several of the C files in the portable directory use __attribute__
and assume portable/macros.h has been included.  This happens to be
the case due to how the header files are constructed, but include it
explicitly following my normal C coding standard for includes.
Consistently #undef functions before defining them for testing

When testing portability functions, we redefine the function to
a different name to not conflict with system headers.  If the
function is implemented by the system as a macro, we have to
undefine it first.  This was being done in some places but not in
others, causing compliation problems with inet_aton on FreeBSD.
Do this consistently everywhere.
Include portable/macros.h in another file that uses __attribute__
Undef write and writev when testing xwrite

Just in case these are macros on some system, treat them the same
as pwrite.
Update comment about undef of functions when testing xwrite
Update to C TAP Harness 3.2

* Support comments and blank lines in test lists.