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