Product of SpMatCCSR with a vector is real vector expression

A*x may be used in any vector expression, and not only in additive ones.
Multivector expressions are not supported yet.

refs #40
Silenced 'unused parameter' warning
WIP: working on Hybrid ELL class

refs #40
Make random_matrix() in tests return non-uniform matrices

This allows to really test Hybrid ELL-CSR format
Fuse kernels for ELL and CSR parts of HybELL matrix

Move HybELL sparse matrix representation to spmat/hybrid_ell.hpp

refs #40
Dropped the idea of heterogeneous SpMV

Matrix has to store ghost points in local vector, and that prevents from
templatizing matrix-vector product on vector type.
Reworked SpMatCSR

refs #40
Cleaned up vexcl/spmat.hpp
Facilitate device-dependent kernel generation

Inline SpMV operation needs to select either ELL or CSR path based on current
compute device.

refs #40
Making SpMV operation inlineable in sungle-device contexts

An expression vex::make_inline(A * x) may be used as any other vector
expression.

refs #40