The main change is to use C99 flexible array declarations
in structs, instead of declaring single-element arrays.
There are still a few -Wtautological-compare warnings
in 3m due to marco expansion.
and also changed vector, string, and byte string counts to
`intptr_t' instead of `int'.
Except for the vector count, etc. change, this is not really a
change for any currently supported platform, where `intptr_t'
is the same as `long'. It's a step to suporting Win64, though,
where `long' is the same as `int' instead of `intptr_t'.