What is the difference between Go's stack and heap memory allocation?