Added a module for generic sparse matrix kernels, and offloaded the responsibility for permuting sparse matrices to procedures defined therein