matrices: Allow to customize/disable sympify

This is preliminary work and not all functionality respects
this. Most notably, all occurrences of values like S.Zero,
S.One, etc. must be rewritten as self._sympify(0) etc.

Example:

In [1]: class RawMatrix(Matrix):
   ...:     _sympify = staticmethod(lambda x: x)
   ...:

In [2]: zeros(3, 4, cls=RawMatrix)
Out[2]:
⎡0  0  0  0⎤
⎢          ⎥
⎢0  0  0  0⎥
⎢          ⎥
⎣0  0  0  0⎦

In [3]: _.applyfunc(type)
Out[3]:
⎡<type 'int'>  <type 'int'>  <type 'int'>  <type 'int'>⎤
⎢                                                      ⎥
⎢<type 'int'>  <type 'int'>  <type 'int'>  <type 'int'>⎥
⎢                                                      ⎥
⎣<type 'int'>  <type 'int'>  <type 'int'>  <type 'int'>⎦
polys: Added experimental low-level linear systems solver
runtests: SLOW -> slow to make --slow work
polys: Added support var()-style generators