More assertion macros.

Stephen Tu's code has INVARIANT macros. I like it. So introduce
invariant() and precondition() macros, separately configurable.
And regularize inclusion of config.h.