[MRG] Refactor of SGD code to use only one call to plain_sgd/average_sgd

This code also makes all methods private and extracts the multiprocessing function into a helper function. Also note that this does not change the functionality of the code at all, it just makes it more clean and maintainable in my opinion. 
This is a bad idea. It's making the object heavier and breaking backwards compatibility with pickled models for no reason: `alpha` isn't used by the PA algorithm, it uses `C`. (The comments in `sgd_fast.pyx` are wrong about this.)