move the metadata parsing from FieldList to a static method of Field to reduce the complexity of the Field factory constructors

This also allows for a user-constructed instance of Field to share the
metadata facilities of the ObjectEditor.  This is important, as it
allows user code to apply metadata to the fields of their model objects
and for that metadata to have affect both in the ObjectEditor and in any
other 'standalone' field editors they may create.