err_str passed as far as gpuarray.pyx and PRINTED (Issue #27)

This is a first pass at getting the OpenCL debug information back to the gpuarray user.  

At the momemt, the 'pure C' in ```gpuarray_buffer_opencl.c``` grabs the debug log information provided by OpenCL, and then appends the listing of the kernel (which is helpful, since the kernel is assembled from various preambles, and the debug info's line counting begins from the start of all the various sources).

At the moment, it's getting passed up to ```gpuarray.pyx``` and getting PRINTed there (line 1871).  Of course, it needs to be fed back to the caller cleanly, but I wanted to get some feedback so far...

All the Best
Martin
:-) 

PS: There's also some commented out code (of mine), for a previous run at the buffer-length logic, but the current way seems more in keeping with the way that OpenCL is doing the sizing/allocation itself.

Please don't use it like this, this causes a malloc for the strb structure which is redundant and possibly costly (and can fail).  You can allocate the structure on the stack with `strb debug_msg = STRB_STATIC_INIT;`.  You then pass a pointer to the strb_* functions using the deref operator (`& `)