What is the difference between Go's interfaces and inheritance for defining and reusing types and behaviors in Go programs?