Describir: Distributed Memory Algorithms for High-Dimensional Data Embedding