GraphCL: Graph-based Clustering for Semi-Supervised Medical Image Segmentation