cj4 log to file after first kernel run

cj4 array is written to file after the first kernel execution.

For the OpenCL version. the results are also compared to the CUDA
results, if the corresponding file is found.

OpenCL: see
#define DEBUG_DUMP_CJ4_OCL
Output files: ocl_cj4.txt

CUDA: see
#define DEBUG_DUMP_CJ4_CUDA
Output files: cuda_cj4.txt
Fixes for unsigned integers reading/writing from/to file
ocl_pmalloc - replaced malloc with calloc
Added debug buffer for OpenCL kernel - see DEBUG_OCL

Added a new parameter to the OpenCL kernel, a buffer where each thread
can output one float value for debugging purposes.
Host side:
- uncomment #define DEBUG_OCL
This way the host will alloc memory for the debug buffer. Additionally,
after each kernel run it will transfer data back to host and write it to
debug_buffer.txt
Device side:
- call print_to_debug_buffer_f to write to the debug buffer.
Each thread can output one single value.
Fixes for DEBUG_OCL, added similar option for CUDA, DEBUG_CUDA
DEBUG_CUDA fix
Added DEBUG_RUN_STEP to control which kernel run to debug