Include <unistd.h> for getopt()

Previously we got a declaration for getopt() as an accidental byproduct
of including <iostream>, which was a non-portable wrinkle of earlier GCCs.
Tidy-ups for compatibility with recent compilers

In internal code, I would just include a C-style header or add a using
directive to continue writing plain ptrdiff_t, but a public header needs
to be more conservative.  There is likely a similar problem w.r.t. size_t
still in the code.

Having to forward declare the decimal() templates is not great, and both
this code and the alignment & header iterators should be revisited.
Produce all diagnostics for failed builds

Add "make -k" to get diagnostics for all issues during a single
automatic build, even though this will often lead to duplicate
messages due to several translation units failing for the same
reasons e.g. within header files.