Dimers and M-Curves: Limit Shapes from Riemann Surfaces | Synapse