BUG: sparse/dsolve: fix dense matrix fortran order bugs in superlu wrappers

The splu() SuperLU wrapper has been broken since time immemorial (< 0.7.2)
for matrix inputs, because of confusion in the C code between Fortran and C
order inputs.

This is fairly simple to fix, so let's fix it. This also allows passing in dense matrices
directly to SuperLU, without needing to loop on the Python side.

Fixes gh-3363