Copied loads of scikit-learn code for NMF
Using the NMF test to test my new NMF class

It gives an approximately correct answer (2 d.p. more or less)
Don't forget the normalisation step
Discovered a problem with the SVD based initialisation - the first
component was initialised to 0.

Dealt with the problem with a mechanism that is somewhat NMF specific