Constrained Hierarchical Clustering via Graph Coarsening and Optimal Cuts