Added fields to AttributeDefinition which store if the field is optional, as well as it's type, and, in the case of Enumerated fields, a place to store the posible enumeration values for an ENUMERATED field.

Note: This update includes no validation, so it should be possible to make a DATE field, for instance, which has possibleValues, which should only belong to an ENUMERATED field, or to create a NUMERIC field which contains the value "I am not a number!"