Backpropagation benchmarks for Theano

This adds benchmarks for the backward pass to the Theano benchmark suite. It pretends that whatever was in `sharedY` after the forward pass benchmark is already the gradient of the (not-actually-existing) cost wrt. the output, so it just does the backward step to compute the gradient wrt. the weights.

Thinking again, are you actually interested in computing the gradient wrt. the weights, or rather the gradient wrt. the input? Or both? Or should that be two separate benchmarks? Let me know and I'll update the pull request.

By the way, I've omitted the GFLOP formula as I guess you already figured it out for some of the other libraries and can just copy it over. Otherwise, `FilterActs`, `WeightActs` and `ImageActs` in pylearn2 also have a `flops()` method that should do the correct thing.
The second one was just to check whether my usage of `theano.grad` did what I thought it would. I compared the graphs and both are `WeightActs()` nodes with the same input (except that the second one has a symbolic filter shape while the first one has Theano constants). I've left it in for future reference.