Remove 'byval' attribute from created safe pointers

Not doing this step can result in 'byval' attribute being stuck to
structs passed by value, which is invalid.
WebGL::ClampPointers::convertArgumentToSmartStruct refactored

Previously there used to be two almost identical functions, differing
only at the type of the last argument and a few points. This change
embeds the differences of Instruction and BasicBlock to template
specialized struct LocationKind.

It is arguable that this can make the code more difficult to read, but
on the other hand it eliminates duplication.
run_tests.sh: support for storing ClampPointers.cpp coverage information

Coverage information requires llvm and ClampPointers to be compiled
with -ftest-coverage -fprofile-arcs (and preferably with -O0). The
resulting gcov output is copied along the test file with the extension
.gcov.
Use c++11
run_kernel.sh: removed a \n-sequence, doesn't work in all echo implementations
run_tests.sh: bash compatibility fix

-z requires zero or one argument, added quoting to ensure that