Explain the use of Go's select statement for communication between channels?