Shared:  Added `defField`.

`defField` is like `setField`, but does nothing if the
field already has a value.
Writers:  Use defField for defaults.

This way explicitly specified fields not overridden.

Fixes a problem e.g. with specifying a documentclass via
the command line using -V.