What is the difference between Go's blocking and non-blocking channel operations?