Explain the use of Go's struct embedding for code reuse?