factoryze all the OpenCL allocation and release

I created two dunctions in the opencl module which are used in
the ocl_xxx modules to allocate and release the pyopencl.Buffer
memory.

please check that all unit test are working.
This should fix issue #133
If platforms are available but no devices: deactivate OpenCL
Correct typo in Fred's patch