nmf with tests

Added NMF algorithm and tests. Tests pass.