NF: Starting to implement the SFM.
RF: Make sklearn an optional package.
NF: First pass at fitting the thing.
Starting to work on signal prediction.
Abstract out the design matrix construction. Predict.
BF: Make it work with different in/out situations.

On to test that it does something sensible (signal-wise).
TST + BF: More testing, more fixes.
TST: More tests.
Handle errors in the ODF estimation.
When signal is zero, set params to all-zeros, not nans.
TST: update the tests.
NF: Calculate the ODF from the parameters.
RF: Cache for speed.
DOC: Small fixes in documentation.
DOC: Reference
DOC: example of SFM reconstruction + tracking.
TST: Implemented tests for new interface to linear solvers.

Also: cleaned up some of the imports:

    import foo.bar as bar

is prefered to:

    from foo.bar import this, that, the_other
NF: Uniform sklearn-like interface to linear solvers.
TST + BF: Test and improve the NNLS dipy.core.optimize interface.

Specifically, in the context of sfm
RF: Testing the SKLearnLinearSolver interface.

This doesn't work, but I am not sure how this should be resolved.