TST - new DTI test to help develop min_signal handling
BF: If all the signal is zero, evals are 0. If all the signal is merely very
low, evals are very high.
BF - compute min_signal from whole data set.
RF: Deal with very small signal, and with all-zero signal.

These two cases should be separated: if s0 is non-zero, and all of the d_sig is
zero, the eigenvalues should be high (3.0 per default, the diffusion of water
in water at 37 deg C). If all of the signals are 0, we set the eigenvalues and
eigenvectors to 0.
BF: Set the zero-d_sig case to have np.eye(3) evecs.

Also, deal with setting of min_signal. This still needs a little bit more
cleanup.
TST: One more test-case; relative signal.
RF: Get rid of the `min_signal` kwarg for DTI.
RF + TST: Added back min_signal, testing with DTI data (not DSI data!).

DTI requires a b0 measurement. This did not exist in the data that was
previously used for testing. For that reason, the eigenvalues in these tests
were always exceedingly low (set by min_diffusivity, I believe). I believe that
it makes more sense to test the model fitting with DTI data. Single b-value and
including a b0 measurement.
PEP8
RF: Move the `min_signal` kwarg to the fit method.
RF: simplify this, move setting of `min_signal` to __init__ function.

Almost there - still need to deal with that hard-coded minimum for cases where
all the signal is 0. Need to think about that.
BF: Pop that sucker. So that that kwarg doesn't get propagated.

And change back the script. Whew!
Whitespace.
RF: We don't need numpy's set operations, after all.
Merge pull request #498 from arokem/bago-dti-min

DTI `min_signal`
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.