add ability to specify field create options

Changed the way create works for field to take optional attributes and allow overriding of required default attributes. Required field attributes are represented as a struct. All available attributes are represented in another struct. At command processing time reflect is used to validate any attributes specified and any overrides are honored. 

This enables the creation of a text field, for example, with a length of 10 chars instead of always defaulting to 255.