What is the difference between Go's type polymorphism and type specialization for creating and using specific types in Go programs?