Added GpuDownsampleFactorMaxGradGrad

This PR adds the GpuDownsampleFactorMaxGradGrad GPU Op which is a fast version of downsample.DownsampleFactorMaxGradGrad, which currently performed in pure python. I've added optimization and a test.

Also I corrected  bug in the tests of test_blas. Some tests would fail because enabling cuDNN by default would prevent Ops like GpuDownsampleFactorMaxGrad from being inserted.
call as_cuda_ndarray_variable on each variable. The CPU code use x.type(). Use the same for consistency and to help when we port to the new gpu back-end.