Adaptive Discrete Communication Bottlenecks with Dynamic Vector Quantization