add quick solution for linear systems of equations

The routines were added to the solvers.py instead of matrices since
it is in the context of solving symbolic matrices that these are
most applicable.
use generate_bell for det_perm; work with Sparse, too

self -> M

simplify=False is used in the tests. Without this, the
times taken increases significantly. (e.g. 48 seconds
instead of 2 seconds for the system of issue 2015.)

some refactoring of code was also done.
Merge pull request #2755 from smichr/mat

add quick solution for linear systems of equations