Merge UDTDefinition into DataType.UserType (JAVA-380)

Also expose a TupleType to improve the consistency of the handling of
UDTs and Tuples