Merge pull request #1417 from nicholas-leonard/master

theano.tensor.batched_tensordot(x, y, axes)
Make the fusion optimizer profile more information.
indent and add opt name in the opt, not just when registering it.

this make the name printed in more place.
Small doc update.
Print the global opt name.
more FusionOptimizer profiling
Update to the blas ops following API change in compyte.
Merge pull request #1754 from abergeron/fix_memleak

Update to the blas ops following API change in compyte.
Remove class that aren't used.
Don't print opt that took no time (they probably where skipped)
Don't register the DestroyHandler on opt that don't need it.
added consider_constant op, which truncates the gradient of an expression to 0. Also added an optimization to remove it from the graph, so other optimizations can be applied properly.

test whether the gradient is computed correctly, and test whether the consider_constant op is removed from the graph.
sort profiler outputs.
Don't use toposort when we don't need it.
more opt profiling info.
[Crash fix]

fix crash when we selected the wrong version of the gpu conv code.
Move fusion before AddDestroyHandler.

We take care to still have this order: gpu, cpu/gpu fusion, then gpu again.
Add the opt name as a tag.
remove code not used that do nothing.
Add new subtensor helper make_constant and use it to fix a bug in local_subtensor_merge.