Add Field object

A field may need substantially different attribute name, label and help
text. A simple name => type mapping is insufficient.