How does Go support testing and debugging, and what are the various techniques and strategies for testing and debugging Go programs?