fix clip bug.
Added tests for the other way around as well.
fixed the unit tests.
Added the comments.
Merge pull request #2225 from caglar/fix_grad_clip

Fixes #633
missing c_set_tensor4d in GpuDnnConvBase
Merge pull request #2241 from ynd/dnn_conv_fix

missing c_set_tensor4d in GpuDnnConvBase
pep8
add docstring and swap parameter order to be the same as make_node
doc cudnn stuff
Now by default, if cuDNN is available, always use it.
better doc
make dnn detect if the library can be loaded.
Better error message when Theano isn't able to use cuDNN
change error type
Catch exception if open() fails as well.

Drop support for python 2.4.
Do not create an array when computing a scalar division
Make sure scalar ops do not compute in float16

Ops that are defined with upcast_to_float should upcast to
float32 or float64 minimally.

Add tests for the cases where the inputs were int8, which is when
float16 values appeared.
Do not try to generate C code for complex inverse
In elemwise.perform, make sure numpy ufuncs do not compute in float16

Since many elemwise ops do not call the scalar op's impl() method,
we needed to also change the perform method when numpy built-in
ufuncs are used.