polys: Optimized PolyElement._iadd_* methods
polys: Implemented PolyElement.diff()
polys: Implemented {Poly,Frac}Element.{evaluate,subs}()
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 for var()-style generators
polys: Optimized monomial case of PolyElement.gcd()
polys: Optimized PolyElement.{__eq__,div#term_div}
polys: Fixed tuple.index() for Python 2.5
polys: Use multinomial coefficients in PolyElement.__pow__()
polys: Fixed PolyElement.gcd() and added tests
utilities: Make sure that timed() works
polys: Improved and tested initialization of PolyRing
polys: Added tests for PolyElement.cancel()
polys: Proper repr() implementations and added tests
polys: Cleanup in rings.py
polys: Allow arbitrary generators in ring() and field()
utilities: Disable timed() tests on Python 2.5
polys: Moved RawMatrix to the top-level