Rank Flow Embedding for Unsupervised and Semi-Supervised Manifold Learning