impl read and write for buffer, move create_buffer to ComputeContext

Housekeeping on the high-level API. I added generic wrapper functions for buffers to make it trivial to read & write from OpenCL Buffers.