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.
Add fast_compile tag so the optimization to remove the Op always runs. Use g_out.zeros_like instead of tensor.zeros_like so the op also works for sparse variables.
Merge pull request #1756 from nouiz/mixed

Fix gpu crash and faster optimization
Merge pull request #1757 from abergeron/subtensor_fallout

Add new subtensor helper make_constant and use it to fix a bug in local_subtensor_merge.
Moved consider_constant from theano.tensor.extra_ops to theano.gradient, moved the optimization that removes it to theano.tensor.opt. Modified theano.compile.builders so it doesn't import theano.gradient, because theano.gradient now imports ViewOp from theano.compile and this would lead to a circular dependency.
need to 'import theano' in theano.compile.builders to be able to access theano.gradient.grad.