TEST: adding more tests to catch differen scipy versions
Added more failsafes for old scipy versions
Resolved conflicts
DOC: changed 0.12+ to >= 0.12
Merge pull request #476 from Garyfallidis/fix_optimize_defaults

Fix optimize defaults for older scipy versions for L-BFGS-B
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