Initial implementation of clGetKernelArgInfo()

- TODO tests & handle missing arg names gracefully
Fix missing CL_KERNEL_ARG_ADDRESS_PRIVATE
Fix messages in assert() calls
The number of kernel metadata is varying

- SPIR has one extra and one optional metadata.
Metadata structure is different when using SPIR

- arg_name only present with a compiler switch,
  so clear the memory with memset
Initial version of tests/runtime/clGetKernelArgInfo
Clean up the code a bit
make test_clGetKernelArgInfo use error checks in poclu.h
Fix a typo in tests/testsuite-runtime.at
Fix a crash in clGetKernelArgInfo

- in case the bitcode is SPIR, arg_name might be NULL
Add has_arg_metadata bitfield to struct _cl_kernel

- and test various bits in lib/CL/clGetKernelArgInfo.c for presence
  of argument metadata
make the clGetKernelArgInfo test also test SPIR bitcodes

Tests bitcode files produced by clang both with and without
the "-cl-kernel-arg-info" argument.
Fix a llvm cast of a function to Fuction instead of MDString
Merge branch 'cl_get_kernel_arg_info' of github.com:franz/pocl
When checking for image type, string match opencl.image2d_t*. Seems to workaround the issue #94 at least for LLVM 3.4.
Additional assertions and slight code cleanup. No functionality changes.