Accept fields out of order in human-readable syntax (indexes must
still be in order), support abbreviated field names:
(nxt_sel, nxt_idx, nxtfld, ca4fld): Remove.
(nflds, fldca, fldidx, caflds, getfld): New.
(xundump): Initialize and finalize them.
(xundump1): New, factored out of xundump().
(deffld): Match names, record field order in fldca[], fldidx[] for
getfld(). Use caflds[] to detect duplicates.
(xufldname): Catch negative index. Used to pass it to deffld(), which
now interprets it as no index.
(setnum, setstr, setsym, mtsymset, add2symset): Use getfld().
(xufld): Improve error message.
(setstr): Fix for NULL strings.
(xuheader): Catch null ef_cadef().
(xuheader): Don't oops when an unexpected table can't be undumped.