Fix issue spotted by Andrei Lascu. We weren't asserting that kernels always have at least one argument which is not always true because kernels that take no arguments which is legal in OpenCL.
Fix issue spotted by Andrei Lascu. We weren't asserting that kernels
always have at least one argument which is not always true because
kernels that take no arguments which is legal in OpenCL.

I just removed the assert completly it is an unsigned int so
``numberOfArgs >=0`` is always true.

This also made me notice that if someone tries to do clSetKernelArg()
on a kernel that does not take arguments then another assertion
would underflow (although it should not be possible to get there
because the underlying clSsetKernelArg() should fail). To protect
against this I've added another assertion.

mc-imperial/gvki,giuliojiang/gvki,giuliojiang/gvki,giuliojiang/gvki,mc-imperial/gvki,mc-imperial/gvki