API support for OpenCL 2.0 fixes #56

This adds the types, constants and and functions introduced by OpenCL 2.0.

@jakebolewski How would you translate the following C header to `@ocl_func`

````C
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueSVMFree(cl_command_queue  /* command_queue */,
                 cl_uint           /* num_svm_pointers */,
                 void *[]          /* svm_pointers[] */,
                 void (CL_CALLBACK * /*pfn_free_func*/)(cl_command_queue /* queue */,
                                                        cl_uint          /* num_svm_pointers */,
                                                        void *[]         /* svm_pointers[] */,
                                                        void *           /* user_data */),
                 void *            /* user_data */,
                 cl_uint           /* num_events_in_wait_list */,
                 const cl_event *  /* event_wait_list */,
                 cl_event *        /* event */) CL_API_SUFFIX__VERSION_2_0;
````

I went with

````julia
@ocl_func(clEnqueueSVMFree, CL_int,
               (CL_command_queue, CL_uint, Ptr{Ptr{Void}}, Ptr{Void}, Prt{Void},
                CL_uint, Ptr{CL_event}, Ptr{CL_event}))
````