Explain the use of Go's type aliases for creating new type names?