Fix sparseLU solver when destination has a non-unit stride.
The previous code had an implicit assumption that the destination is
directly accessible and has unit stride. This is not the case for
block expressions or views like complex_matrix.real(), which
has a non-unit stride. Converting the code to use a block expression
address this.
Fixes #2562 (closed).