opencl: make memory mapping available
opencl: option to use pinned memory for host<->device transfer during tiling

On some devices (namely AMD) direct memory transfers may give a huge performance penalty. This
is especially visible when exporting large images when darktable needs to use tiling. Now
there is a new config parameter opencl_use_pinned_memory. Setting it to TRUE can speed
up processing by a factor of 2-3. NVIDIA devices seem to have a more efficient memory transfer
technique. They deliver better performance if opencl_use_pinned_memory is left at its default FALSE.
Merge branch 'master' into opencl
usermanual: add documentation for opencl_use_pinned_memory
Merge branch 'opencl'
opencl: add slack factor to avoid pinned buffers getting too close to max_mem_alloc

derived by pure heuristics. without this factor mapping tends to fail in case of very large buffers