kernel-runner: Fixed include path for TimeValue.h to work in Linux (support->Support)
WebCLKernelHandler::run: eliminated an unused variable that produced a warning
WebCLImageSamplerSafetyHandler: extended to handle sampler_t

sampler_t is now alloewd not only as a literal but as well as an
argument to the kernel. That sampler_t argument can be passed towards
other functions.
WebCLFunctionCallHandler: generalized from WebCLBuiltinHandler

Now the wrapping operation is performed for all function calls, not
just builtin calls , if applicaple.

The matching of operations to perform is done by function call
expression instead of only its name part. (That is, also argument type
can be considered.) This reduces the overall efficiency a bit as the
list of wrapper functions needs to be iterated instead of accessed
directly by the name, but it also adds the ability to perform function
call wrapping by some criteria other tha the function name. Such would
be the case of wrapping all function calls involving sampler_t.
WebCLTransformer: added a general sampler_t handler that wraps all function calls involving sampler_t
Implemented sampler_t tests

sampler-type-as-argument.cl is based on image2d-type-as-argument.cl.
WebCLTransformer::rewriteOrForwardSamplerArgument: CLK_ADDRESS_NONE is not a valid address

CLK_ADDRESS_NONE is not a valid address mode per GitHub issue #43.
sampler_t may now be used as a local parameter with restrictions

Such local parameters can also be used as arguments to functions
accepting sampler_t, such as read_image* or user-defined functions.

The restrictions are similar to ones previously used for sampler_t but
with a few refinements:

1) when a function with argument type sampler_t is called, the value
   originate either from a parameter, it must be a constant integer
   expression or it can be a local variable.

2) variables of type sampler_t must always be initialized when they
   are defined. The initialized must always be either a constant
   expression or refer to a parameter or a local value. (Ie. the
   same limitations as in #1.)

3) when a value of type sampler_t is used it must be used as either
   an initializer or as argument to a function accepting sampler_t.

With these limitations it is for example guaranteed that

1) a value of sampler_t cannot be mutated, as sampler_t_value = 1
   would be use different from initialization or function argument
2) the address of sampler_t-typed value is never acquired (because
   the same reason as in #1)
2.1) which guarantees that values of type sampler_t will not be put
     into a address space struct
2.2) which guarantees that they cannot be mutated by overflowing other
     values in the address space struct.
Merge pull request #57 from eras/sampler_safety

Sampler safety