[WIP] Adding Implementation of SAG

An implementation of SAG for #3805
TODO list:
* ~~Make correct 'auto' eta0 implementation (what should be the Lipschitz Constant for regressor vs. classifier)~~
* ~~Make test pass for checking infinity or NaN in weights~~
* ~~Add doc string for Classifier~~
* ~~remove dependency on BaseSGD?~~
* ~~enable coef init and intercept init~~
* ~~allow for warm starting~~
* ~~find difference between sparse and standard implementations~~
* ~~figure out way to duplicate c seeding for test~~
* ~~add support for class weighting~~
* ~~get doctests to pass~~
* ~~get all other tests to pass~~
* ~~make it work if there is only one class present~~
* ~~add pickling~~
* ~~add sparse decay~~
the only tests that use classes and not plain functions are from SGD. I don't recommend we change them but for new tests I recommend to use plain functions.

@dsullivan7 if you agree please make the changes.