Add BOOST_COMPUTE_CLOSURE() macro

This adds a new macro which allows users to create closure functions
which can capture C++ variables and make them available in OpenCL.