NF: unique rows of an array.
NF: Added a crutch function. This will need to be removed later on.

And replaced with `move_streamlines`, but I am defering that until I get a
sense of what is happening here.
NF: Added a first-pass implementation of LiFE.
RF: Thinking about simplifying this.

Maybe use dipy.sims.voxel directly?
WIP: Completed the mapping function voxel2fiber, inclduing test.
Matrix allocation more-or-less working.
WIP: Still working out how to create this model.
NF: Added Sparse SGD algorithm for solution of the LiFE equations.
TST + BF: Make sure that input to np.gradient is an array.
RF: Move down the fit function.
RF: docs
Might not need to isotropic matrix, if we treat that as a mean.
RF: seems to be running through now. Need more tests.
TST: Fix typo in test. Reinstate the Fit test, but need something more rigorous
BF: Need to be a little stricter to be able to round-trip.
RF: Moving stuff around a bit, and starting to cythonize voxel2fiber
BF: python 3 compatibility.
RF: A bit more work on cythonizing this.
RF: SGD => SPARSE-NNLS
NF: Class for approximating and caching signals on the sphere.