clCreateProgramWithSource NULL lengths support

clCreateProgramWithSource can have lengths = NULL due to OpenCL standard,
this means all strings are null-terminated. If lengths is not NULL but
some lengths[i] are zeroes, this particular strings are null-terminated.
Actual lengths are sent to server, no null-terminated strings for master OpenCL.