Congestion Control for Massive Machine-Type Communications: Distributed and Learning-Based Approaches