[WIP] Interface change rebased (3)

This is a rebased of gh-265 on top of today's master.

All tests should pass, except two, that are expecting SGD to perform a specific number of updates, even when no data has to be read from the training data set.
See [this thread](https://groups.google.com/d/topic/pylearn-dev/Eqwi1sSq2LU/discussion) on pylearn-dev.

I'll update the tests to require some data from the training set.