Report test name in case of runtest failure; add missing print_function.

Make runtests.py report the name of a test if an exception is thrown
before it outputs the test name normally. This makes sure that the
name of a test is printed even in the face of runtest machinery failure.

Added a print_function import from __future__ to test_codegen, which
would make tests fail all over the place when --enhance-asserts was
active.
Add --split option to split the tests and doctests

The usage is

./bin/test --split 1/2

which will run the first half of the tests. Any a/b is supported.

Currently, this just splits the test files, because that was the easiest to
do, but we maybe should implement splitting the tests themselves.

Note that for the doctests, the regular doctests and the Sphinx doctests are
split independently. Furthermore, the Sphinx doctests split against every
Sphinx file, before it checks if it actually has doctests, so for some splits,
no Sphinx doctests will be run at all.
Implement test splitting in Travis

Now the regular tests are split into two test runs.
Print the split in the test header if there is one

This will help in debugging why this doesn't seem to work in Travis.
Sort paths in the tests

This should make --split act as you would expect it to, regardless of the
underlying filesystem.
Travis: Also split the gmpy tests
Sort the right thing when running the tests

This reverts commit 6495de3c4584754644a9b7f565ec2d7b893fbbf9, because it was
sorting the wrong list.
Update list of installed modules
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.
New superclasses for Integral, Sum, Product

The new classes work for all associative ops between limits.
The classes enable factor, expand, subs fixes to Sum and Integral
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.
Merge remote-tracking branch 'origin/master' into report-test-name-on-early-failure
Issue and version numbers corrected.
Removed duplicate import.
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.