polys: Use rational numbers instead of floats to avoid OverflowError

In [1]: a = (x**45 - 45*x**44 + 990*x**43 - 1)

In [2]: b = (x**46 - 15180*x**43 + 9366819*x**40 - 53524680*x**39 + \
   ...: 260932815*x**38 - 1101716330*x**37 + 4076350421*x**36 - \
   ...: 13340783196*x**35 + 38910617655*x**34 - 101766230790*x**33 + \
   ...: 239877544005*x**32 - 511738760544*x**31 + 991493848554*x**30 - \
   ...: 1749695026860*x**29 + 2818953098830*x**28 - 4154246671960*x**27 + \
   ...: 5608233007146*x**26 - 6943526580276*x**25 + 7890371113950*x**24 - \
   ...: 8233430727600*x**23 + 7890371113950*x**22 - 6943526580276*x**21 + \
   ...: 5608233007146*x**20 - 4154246671960*x**19 + 2818953098830*x**18 - \
   ...: 1749695026860*x**17 + 991493848554*x**16 - 511738760544*x**15 + \
   ...: 239877544005*x**14 - 101766230790*x**13 + 38910617655*x**12 - \
   ...: 13340783196*x**11 + 4076350421*x**10 - 1101716330*x**9 + \
   ...: 260932815*x**8 - 53524680*x**7 + 9366819*x**6 - 1370754*x**5 + \
   ...: 163185*x**4 - 15180*x**3 + 1035*x**2 - 47*x + 1)

In [3]: intervals(a*b)
Out[3]: [((0, 1/2), 1), ((2/3, 3/4), 1), ((3/4, 1), 1), ((6, 7), 1), ((24, 25), 1)]

Fix suggested by Heiner Kirchhoffer.
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.
Fix mathml tests in python 3.
Suggested fix for __int__ function of class PythonRational in order to enable it to work with large numerators/denominators.
Added issue numbers to @deprecated annotations.
Issue and version numbers corrected.
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 satisfiable work on instances of bool
Merge pull request #2491 from jrioux/tests

Fix mathml tests in python 3.
Add a test for the QQ integer conversion
Merge pull request #2533 from asmeurer/satisfiable_bool

Make satisfiable work on instances of bool
Merge pull request #2532 from asmeurer/predicate-sympify

sympify the args of AppliedPredicate
Add some facts about rational and irrational for Add and Mul to newask
Comment out the failing test
Also test for overflow

Previously this would raise:

OverflowError: long int too large to convert to float

Now it just works.
Merge pull request #2544 from certik/master_fix

Comment out the failing test
Merge pull request #2541 from certik/HeinerKirchhoffer-fix-root-isolation-bounds

Heiner kirchhoffer fix root isolation bounds
Merge pull request #2490 from toolforger/contextualize-ga-printing

Made GA_Printer robust against exception abort
Don't print a space after ¬ in the pprint of Not
Merge branch 'Not_pprint' into newassump

Conflicts:
	sympy/logic/tests/test_inference.py