Add an option to the test runner to force using colors
Correctly use output of dsolve() in relativity example

dsolve() outputs an Eq(), but the example was still using the output as if it
had output an expression.  Since the solution is explicitly solved for the
function, we just pass it to solve().
Document the force_colors option to test()
Factor out setup.py test into run_all_tests() in sympy/utilities/runtests.py

This way, we can easily get the functionality of running all the tests in a
forward compatible way, but still have the ability to pass arguments and
keyword arguments to the various test functions.
Fix .args for ImmutableMatrix().

This commit changes .args for ImmutableMatrix() so that it is understood
by its constructor. This fixes obj.__class__(*obj.args) and obj.subs(...)
for ImmutableMatrix instances.
Merge pull request #1198 from jrioux/matrices

Fix .args for ImmutableMatrix().
Merge pull request #1115 from asmeurer/force_colors

Add an option to the test runner to force using colors
[polys] Start groebner basis code for modules.

This commit adds a degree function to monomialtools.py, and then
adds a new file distributedmonomials.py which implement / will implement
groebner basis code, and all required utility code, for sparse, distributed
modules.

Also add many tests.
[polys] Improve sdm_groebner.

Specifically, interreduce the standard basis computed so as to yield a
minimal standard basis, and implement the chain criterion.
[polys] Document and test monomial_divides.
[polys] Implement InverseOrder and ProductOrder.

Two ways of constructing new monomial orders from old ones.
Also add simple tests.
[polys] Add simple tests for standard bases wrt local orders.
[polys] Add __str__ methods to new monomial orders.
[polys] Import ilex, igrlex, igrevlex orders by default.
[polys] Implement build_order helper function.
[polys] Implement is_global attribute for monomial orders.
[polys] "beef up" DMP and DMF.

Specifically, make both of these classes optionally carry references to their
containing ring. Use this for pretty printing, and for unification.
Also add implicit conversion in __add__ etc methods, to allow short-hand
expressions like QQ[x].convert(x) + y.

Also fix PolynomialRing and
FrationcField comparison methods, and make sure they create DMP/DMF instances
with a containing ring reference.

Note that functionality tests are added in the (later) commit which implements
generalized polynomial rings.
[polys] Implement generalized polynomial rings.

Generalized polynomial rings are polynomial rings localized with respect to
certain multiplicative subsets determined by monomial orders. They are
important since groebner basis computations work for such rings.

In order to implement this, rename PolynomialRing into a storage-agnostic
base class PolynomialRingBase. Create new subclasses GlobalPolynomialRing
and GeneralizedPolynomialRing to implement storage via DMP and DMF.
Create a helper function PolynomialRing to automatically instantiate
the correct subclass.

Extend domain class to allow passing optional arguments (specfically, orders)
to poly_ring.

Extend pretty printing to make this visible.
[polys] Fix doctests for new printing.
[polys] implement __div__ for DMP.