Upstream some changes auxillary functions from my branch.

-Added write_async
-Added create_context_with_properties
-Made some objects public that are needed for gl_cl bindings