deepCopy
Returns a deep copy, retaining the uuid if and only if retainUuid is true
.
Fields annotated with Transient are shallow-copied.
See also
DateTimeScheme.deepCopyTransient
utility function for subclasses that want to implement deepCopy