Buffer is class, extends MemObj + Add OCL2.0 errors + OO comments

- Add a struct ccl_buffer which is now a proper class extending
ccl_memobj, with own constructor and destructor.
- Add OpenCL 2.0 errors to errors.c
- Update Doxygen comments to reflect the OO nature of the code
(in progress)