What is a pooling layer and how is max pooling used in computer vision models? How does max pooling reduce the spatial dimensions of feature maps? What role does pooling play in improving model efficiency and performance? How does max pooling differ from other pooling techniques like average pooling? What are the advantages and limitations of using pooling layers in convolutional neural networks?