Added first support for integer vectors using the CPU backend.

Operations on integers need to be type homogeneous: All scalars and vectors
involved need to have the same type. Mixing types might work in some
cases, but may also fail to compile or execute correctly.
Improvements are desired to allow full type-mixing, but this certainly requires
a bunch of conversion routines as well as a full-fledged generator.
Added support for vector<int> and vector<long> when using OpenCL.

Support for char and short as well as unsigned types to follow.
Added support for integer vectors using the CUDA backend.