Device: added support for querying most device info parameters
Program.create_with_source_file: don't leak fd in case of IO error
Buffer: support for local arguments
Platform.extensions: return a string list instead of a string
caml_opencl_context_devices: return proper number of devices

Previously the size returned from clGetContextInfo was used as
the number of devices, but this number needs to be divided by
sizeof(cl_device_id). This could result in segmentation faults
when accessing the values.