Make the op_lifter take a list and lift again the Sum op.

Add test for it.

Do not include now the Prod op as there is failing test.
Remove compilation warning.
Make an opt to use inplace version of DiagonalSubtensor, IncDiagonalSubtensor.

They are used by conv3d2d.
Fix crash during the memory profiling of GpuConv.
Make gpugemv and gpugemm work correctly when the back-end don't support inplace.

add assert too.
Add GpuDot22
Implement GpuAlloc(memset_0=True) as in the old back-end.
Add GpuKernelBase, a mixin class to help deal with kernels in C code for compyte.
Convert GpuEye to be a real compyte op.  This is, where possible, a direct translation of the original code and does not reflect the preferred style.
Use the class for for __str__.

The new Gpu back-end reuse those 2 fct.
Do not move scalar elemwise to the gpu.
Add Shape_i c code for the new gpu back-end.

Refactor it to make a registry op c code.
pep8
Simplify code following code review.
Make the GpuKernelBase C code PY3 compatible.
Merge pull request #1627 from nouiz/cleanup

Cleanup
Fix kernel compilation under stupid cuda overloading rules.
Compile the inner fct in scan only once per instance.
Use a ternary op since it seems the cuda compiler cannot resolve overloads by going through simple typedefs.
Add config option to specifiy cublas library name.