Allow heterogeneous vector types in backend interface

This allows to accomodate raw pointer warppers in builtin backend
solvers.