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.
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.
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.
Merge pull request #1755 from benanne/consider_constant

Add consider_constant op