opencl: support importing without pyopencl

Allow importing of the opencl code but raise a NoCLPresentError if one
tries to use it without OpenCL installed. This allows the tests to be
skipped on machines without an implementation. It also allows Sphinx to
process API documentation for OpenCL modules even if OpenCL is not
present.