catacomb.c, util.c: Publish negative constants correctly.
The various `KERR_...' constants and `PGEN_ABORT' are canonically
negative integers, but weren't published correctly. Add a flags word to
`struct nameval' to identify constants which should really be signed,
and some fancy footwork to convert unsigned integers back to negative
values without upsetting C. Adjust the `C' macro to spot negative
constants and mark them specially.
Not all is well. In particular, the `KEXP_...' constants should /not/
be published as signed values, even if `time_t' is signed on the target
platform, because the Python bindings handle them exclusively as
`unsigned long' values. To make this work, also introduce `CF' which
allows us to set the flags explicitly, and use it for `KEXP_...'.