Nesterov momentum implementation

Based off of the [simplification suggested by Ian Goodfellow](https://github.com/lisa-lab/pylearn2/issues/677) (@goodfeli) and [the corresponding paper by Yoshua Bengio](http://arxiv.org/pdf/1212.0901v2.pdf).

Still need to add tests to the test suite, but I'm looking for a few more eyes on the code to make sure the basics check out. 
Is this implementing equation 7 in the paper?

I think I see how it's equivalent, but only if you assume that the 'vel' referenced by 'inc' is v_{t-1}, and not v_t -- however, because of the way OrderedDict works, and because vel is a shared variable, isn't vel actually v_t here? That is, the velocity update is going to happen *before* the parameter update, which means the parameter update is referencing the iterated velocity rather than the velocity v_{t-1}.

I think for Nesterov momentum you'll have to move the updates[vel] assignment after the updates[param] assignment. And regular momentum will have the same problem here, but in that case you could just say inc = vel and let the velocity update happen first.

In my own experiments, it doesn't make a huge difference whether the updates are reversed, but it is very slightly better to do them the way I suggest instead of the way they're done here (e.g., I have 0.9% lower MSE on a simple autoencoder task after 100 iterations).