Field : constructors now take a String for `displayName` rather than a `DisplayName` annotation

This lines things up better with the rest of the code; we reflect and
process metadata in the FieldList (_parseMetadata) and a Field is
constructed with simple values as much as possible.  This change also
makes it easier to provide a custom displayName String for a Field
constructed in code (use cases outside of the ObjectEditor)