Memory-Efficient Convex Optimization for Self-Dictionary Nonnegative Matrix Factorization