add switch for MPI because it will detect OpenMPI but not compile.
sometimes nanosleep is defined already.
Allow native OpenCL vector types, like cl_float4.
(There are some operators defined, too, but mainly for reduction)
Replace std::is_arithmetic trait with is_cl_native because not all arithmetic types are supported, i.e. long long.
Remove 64bit case since size_t maps to uint or ulong already.
Make the `negate` and `append` flags templates, allows operations to use static_assert to forbid i.e. appending if they would need another buffer.
Negate flag is a bool now, as in the grammar. Arbitrary factors aren't supported anyway, i.e. y = -1 * conv(k, v), only y = -conv(k, v).
Remove unused parameters
Fix signed/unsigned comparison
Fix binary cl_typen operators
Merge commit '8781c10ac75bc2c89cf7bb25a39269568969af4b'
Scaled additive transforms

c * (A * x); c * (X * S); c * S_op(X);
where c is a scalar value, A is a matrix, S is a stencil,
and S_op is stencil operator.
utest for vector types arithmetic
Signed/unsigned mismatch continued
Unused parameters
Missing braces in initialization
Again, signed/unsigned mismatch

MS Visual Studio only supports OpenMP v2.5, and that requires signed
index types in parallel for loops