Describir: Algorithms for Data Fusion, Representation Learning, and Scalable Clustering Based on Constrained Low-Rank Approximation