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. 
I'm not confident that is actually the update rule for Nesterov's momentum, since I cannot find these rules in Ilya's paper. Is there another citation missing, that would explain this reformulation?
It looks like the `param` value we are working here correspond in fact to `theta + momentum * vel` in the paper (since that is where we take the gradient), so should there be a final step so that the params used for monitoring and testing are the actual parameters, not the gradient evaluation point?