WIP: Starting to implement the SFM.

This is a start on an implementation of the model we describe here: 

http://arxiv.org/abs/1411.0721

The main current issue with this is that this will have a local dependency on scikit-learn, because it uses ElasticNet for the fit. How do people feel about that?