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.
Added a regression test for issue #94
Tagged some of the ViennaCL cases as 'long'.
Missing include.
Fix a llvm cast of a function to Fuction instead of MDString
pocl_llvm_api.cc:
- reoder the passes so we can maintain VUA from PHIsToAllocas
- remove some dead code, cleanup some style issues

VariableUniformityAnalysis:
- in case an alloca is written from inside a diverging BB,
  the alloca is varying closes #94
- add preserve analysis for VUA in various passes to avoid losing
  the info that gets lost in PHIsToAllocas

PHIsToAllocas:
- maintain information of the split PHIs in VUA to not lose
  track of the loop induction variables after the PHI breaking
Fixed the 'uniformity' pass location also in the standalone script.
Warning fix.
Merge remote-tracking branch 'upstream/master' into cl_get_kernel_arg_info