CGX: Adaptive System Support for Communication-Efficient Deep Learning