Merge from trunk
Continue merge from trunk
Merge from trunk
Add dependency of patched file cl.hpp onto the patch
Re-implement OSX assign() work-around

Do not replace assign() by resize and memcpy.
Instead, define the function later, after cl::Device has been fully
declared.