[WIP] Implementing Averaged SGD

Working on implementing averaged SGD for both classifier and regressor for #543
hmm... its more like this: assume you make an update of feature ``j`` in iteration ``t`` (``T`` in total). The key idea is that the update will stay in the averaged weight vector for the next (T-t) iterations. So you update ``aw[j] += (T-t) * update * x[j]``. Where ``update`` is the learning rate * gradient. Finally, you divide ``aw /= T`` to get the averaged weight vector. 

The problem with this approach is: a) it requires that you know ``T`` in advance (SGD supports partial fit) and b) I dont know how it mixes with regularization (both L2 and L1).