Print the optimizer profile on the right destination.
Faster opt local_fill_cut
Faster and simpler opt local_mul_to_neg
Code simplication
add theano.scalar.get_scalar_type(dtype) to cache Scalar(dtype) object.

This speed up optimization.
Print more info in the optimizer profiling
Faster opt by not doing useless stuff.

This make the Canonizer take 4x less time in a test case.
Remove useless fct call
Pass the reason parameter down.
local_mul_to_neg now only apply when it won't add node to the graph
remove local_mul_to_neg as it doing a subset of local_mul_specialize
local_mul_specialize now don't introcude neg node when this will add more node then needed.
remove commented code.
fix/update comment/docstring.
When an apply node execution raise an error, print the inputs values when they are scalar.
client of variable can be the string 'output'
Fix test since now we introduce less neg node.
Generalize the error message to help work around a travis failure.
Merge pull request #1716 from nouiz/err_msg

When an apply node execution raise an error, print the inputs values when they are scalars.
Add more error information.