Add new virtual type for specifying sizes (of buffers and other things).
Group properties with their target.
Allow two dimensions in kernel launch grid, which is required for performance in certain kernel configs.
Use the real size of size_t in types.h and add a semi-faked type for GA_BUFFER.
Accept a buffer or a kernel for context properties and act on the associated kernel.
Remove support for cuda < 4.0.
Proper const for GpuArray_transfer().
Rework context handling in cuda_property to avoid the "context is so dead we can't even fetch it" problem, allowing better error messages.
New call api for kernels.  We no longer use the setarg model as it required keeping references to the passed-in buffer for a unknown amount of time, interfering with the memory management of the clients.

The new model also has the advantage that you only have to know the types of the arguments at creation time and they will be remembered.  There is currently no type checking apart from buffer which should be checked on debug builds.
Move the python bindings to the new call interface.  Reduction has problems that does not seem linked to this new interface.
Fix event handling in kernel calls.
Fix remaining problems with the OpenCL backend.
Fix handling of gs and ls when no n is provided.

Also stop accepting 0 as the run size since it's not supported by the backends anyway.
remove error from gemm, gemv call.
allow empty gemm output to work.
Add const to parameter
Return an error instead of bad value in one case of shape with 0.

I suspect a cublas_sgemv error!
Add test for gemv and gemm with 0 shape.
Implement ourself the case that is bugged in cublas GEMV