Made GA_Printer robust against exception abort.

GA_Printer is now a context handler.
If used in that way, it will clean up after itself even in the presence of exceptions.

Made all uses of GA_Printer use the "with" form.
Added issue numbers to @deprecated annotations.
Issue and version numbers corrected.
Make satisfiable() work with arbitrary expressions, not just Symbols

This is in the same spirit as https://github.com/sympy/sympy/pull/2451.

This also should make satisfiable() more deterministic by sorting the symbols.
Fix spelling error in function name
Define all the __rop__ logical operators on Boolean

Now things like True & x work.
Move rcall from Expr to Basic

This lets it work on non Expr objects, such as booleans, like And(Q.real,
Q.positive).
Marked sympy.galgebra.ga.ga_print_on/off as functions for interactive use.

Updated all uses of these functions to use the GA_Printer() context handler.
Make bin/ask_update.py grab the right sympy
New assumptions: zero is even

This also lets it deduce that zero is an integer.
Use a context manager in ask_update.py
Sort the keys in the ask_generated.py dictionary

This will make the diffs much less drastic when new facts are added.
test_plot.py: Cleanup temporary files after test completion
4023: better handling of exponents in nfloat

When nfloat encountered RootOf instances the method
it used to leave the exponents alone didn't work because
RootOf instances don't allow non-univariate expression.
So RootOf(x**dummy_1 + x**dummy_2, 0) fails. The handling
of exponents is now handled in a more straightforward
manner and a test expression was added to solve's suite.
handle RootOf on their own in nfloat
Use _argset in preorder_traversal

This makes atoms much faster on LatticeOps (like And and Or), because it
avoids ever computing the sorted .args, which are internally stored as a
frozenset.  This is implemented as the default, because the docstring says
that if keys=False then no order is guaranteed, but if this becomes an issue,
we should perhaps make keys=True the default and set it to False in atoms (the
order never matters in atoms because it returns a set).
Merge branch 'master' into satisfiable_expr

Conflicts:
	sympy/logic/tests/test_inference.py
candidate fix for get_motion_params() bug

- Change integration style.
- Update tests to accomodate integration style change.
- doc revision for get_motion_params()
Merge pull request #2490 from toolforger/contextualize-ga-printing

Made GA_Printer robust against exception abort
Merge pull request #2507 from asmeurer/rbool

Define all the __rop__ logical operators on Boolean