AI-572 Refactored FormFieldType enum into seperate classes

Two interfaces:

FieldTypeClass - the broad class of type - text, quantity, etc
FieldType - a type class + parameters
            for example QuantityType = QuantityTypeClass + { unit = "household" }

I've kept the FREE_TEXT, REFERENCE, etc constants around to facilitate
refactoring, but the next step will be to refactor the existing case statements
that use these constants into methods on FieldTypeClass or FieldType