Explain the use of Go's custom types and methods for creating and using custom data types in Go?