Add support for user-defined types.
Add Attribute#to_name and Heading#to_name
Add default name and refactor BuiltinType accordingly.
Implement name and default_name to SubType.
Implement default_name and name on UnionType
Implement default_name and name on UserType.
Implement default_name and name on TupleType.
Implement default_name and name on RelationType.
Don't add error message suffix for default constraint.
Let start some acceptance tests with Cucumber!