fixed C code cache version for GpuCAReduce
got rid of cuda-specific scalar C code methods
test reduce with shape 0
made CAReduce check for reducing 0-length axis with max/min
test_max tests now do tests with 0 shape
changed language of cautionary note
New optimization that will use cudaMemset for GpuAlloc when we init memory to 0.
compile cuda_ndarray.cu with -O3 flags.
move fct and force them to be inlined.
don't need to call the c fct when the data is not allocated.
postpone the creating of the device structure to when we need it.

This is a significant speed up with the gc as most of the time, we
don't need it and allocating on the GPU is slow.
use the new apply_nodes attribute name.
more clear error msg.
make sure it work with non scalar tensor and test it.
Update test following the postponing of allocation of the device structure of CudaNdarray.
This fix a crash recently added in 5178e4

We need to update the second var before we use it!
Merge pull request #942 from nouiz/gpu_alloc2

Gpu alloc2
Merge pull request #940 from goodfeli/eval

added eval method and tests
Merge pull request #943 from nouiz/fix_conv2d_crash

This fix a crash recently added in 5178e4
This fix a new test for a new feature.

If travis would have run the tests, it would have detected it, but it didn't ran...