Maintain seperate directories for heterogeneous cpus
in multi-node clusters

1. Create device cache dir based on long_name(complete cpu name in cpuinfo)
instead of short_name. Clusters with different architectures/names cpus
will have seperate device directories

2. Rename temp_dir to cache_dir in program structure. Now that kernel cache is used
Capture build timestamp in cmake
This is a parameter for kernel cache
Rename function to something meaningful
Fixed buffer allocation problem for memories bigger than 2GB
 - Updated `chunk_slack` function to return only the result of the
comparison and set `last_chunk_size` via a pointer
 - Updated the other functions which use that function
Changed coding style
Fix a race condition in the lock initialization.
Instruct to use the upstream Halide now that the LLVM shared lib
patch was merged in.
benchmark.py: Add Halide cases.
benchmark: Add a 4K image Halide benchmark. The sample is
in public domain:

http://www.uhdwallpapers.org/2014/11/garden-summer-chalet-nature-landscape.html
Disable the custom bufalloc by default for pthread for now.

Halide cases had memory allocation explosions due to it, need to
investigate why.
Fix an issue where pthread malloc allocator freed host
pointers.
Missing backslash.
Download the 4k test image on demand instead of having it
in the git repo.
Typo in the img name.
Include PACKAGE_VERSION and POCL_BUILD_TIMESTAMP in the cache key
hash, do not have a separate file for POCL_BUILD_TIMESTAMP.

Fix a race condition in the cache book keeping lock initialization.
Merge branch 'master' of github.com:volkankeles/pocl
Add Volkan Keleş to CREDITS.
Merge branch 'master' of github.com:krrishnarraj/pocl
Cleanups.
Added CloverLeaf OpenCL to the test suites.