Added vector_tuple<T> and respective convenience function tie() for grouping vectors together.
OpenCL kernel argument setter now prints size of local buffer in debug mode.
OpenCL backend for multiple inner products now ready.
Fixed problematic use of viennacl::traits::size1() on object of integral type.

size1(vec.size()) for a vector<T> vec compiles on GCC and Clang, but leads to problems in ICC under Windows.
Adjusted vector_tuple to return references rather than pointers.
Added multiple inner_prod() with same vector for CPU backend.
Fixed placement of barriers in sum kernels
Added CUDA version of multiple inner products.
Fixed uninitalized context ptr in scalar_vector when using OpenCL.
Added additional barriers in sum and inner product OpenCL kernels.

An additional barrier is now put after the reduction step.
It should not be needed, but some rare failures of the test suite have been observed.
Does not affect performance, because it's only one additional and fast local memory barrier only.
Added additional overloads for viennacl::tie() and viennacl::vector_tuple CTOR.

tie(): Up to five args
vector_tuple::vector_tuple(): Up to four args
Fixed minor errors in CUDA implementation of multiple inner products
Fixed wrong use of vector_tuple and result assignment for multiple inner products on host
Fixed wrong handling of a single inner product inside multiple inner products for OpenCL
Added front-end and tests for multiple inner products. Implementation now complete.
Added support for simple vector reduction operations (inner_prod, norm_1, norm_2, norm_inf) in scheduler.
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.
Now using op_mat_mat_prod instead of op_prod for matrix-matrix products.

The reason for splitting the common op_prod was the limitations encountered within the scheduler.
With a common op_prod one first needs to deep-inspect the leaves in order to find out whether
we are dealing with a matrix-vector and matrix-matrix product. By splitting op_prod,
this deep inspection is no longer necessary.

(Similar splittings for separating the matrix-vector product from outer vector products are likely to be applied later)