What is the difference between Go's type assertions and type conversions for handling and converting dynamic types in Go programs?