Better handling of stdint.h and defines.

Try more ways to ensure that __STDC_LIMIT_MACROS is defined before we
include stdint.h. And, when we really need its defines, if they didn't
come through, try to give a clear error message.
Improve warning suppression for recent gcc
SPI compiler diddling
Fix confusion of stride_t vs ptrdiff_t for platforms where they're differen