fix warnings
use _v2 of cuda functions when available
grovel CUdeviceptr and size_t
don't fail if cuda library cannot be loaded
support pointers and integers when launching kernels

Only MEMORY-BLOCKs were suported previously which is fine as long as
one uses ALLOC-MEMORY-BLOCK. With this change CU-DEVICE-PTRs obtained
directly from CU-MEM-ALLOC can be used.
add double float support
add support for xorwow from curand
add some math functions