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.