What is the difference between Go's context package and signals for managing the lifecycle and termination of multiple goroutines in Go programs?