watch for negated base pairs

In theory this problem should be handled by signsimp but
sqrt(-(x - z)) signsimp only looks for things that can have a negative
sign exptracted so (x - z)/sqrt(z - x) becomes (x - z)/sqrt(-(x - z))
and that doesn't simplify unless we look for the negated base in powsimp.

Only a minimal attempt is made to find the negated pair. If one desires
other things like x + y*(z - x) to be recognized as the negated expression
of -x + y*(x - z) then signsimplification should be done first.

>>> (x + y*(z - x))==(-(-x + y*(x - z)))
False
>>> signsimp((x + y*(z - x)))==signsimp((-(-x + y*(x - z))))
True

Number that are negated are handled elsewhere so these are sepcifically
exclluded from consideration by the added code.
Fix init_session(ipython=False) for non-unicode terminals.

InteractiveConsole is another case were we should not force
use_unicode=True. Instead, let's rely on the code that checks
sys.stdout.encoding to automatically set this to the correct
value.
Partially make undefined Functions picklable (issue 1198)

The fix, which is described at issue 1198, now makes it possible to pickle
functions in an interactive session.  For example

In [1]: import pickle

In [2]: pickle.dumps(f)
Out[2]: 'c__main__\nf\np0\n.'

However, it does not work in other situations. For example, in a regular
Python session, it will not work.  If you create a script with

import pickle
from sympy import Function
pickle.dumps(Function('f'))

it will not work.

However, this *does* fix many issues in SymPy Live, including issue 2600,
which prevented most examples using undefined Functions from working.

Unfortunately, the tests in test_pickle.py seem to be among the instances
where this doesn't work.  I don't know how to set up a test situation where
this does fix the problem.

This fix should be considered a temporary one. We really need to rewrite
Function so that it doesn't create classes on the fly (see issue 1688).
init_printing: Update a comment.
Move all statistics related tests into the statistics module

This module is deprecated, so keeping the tests together makes it easier to
ignore the deprecation warning during the tests (which otherwise raises an
error).
Merge pull request #2114 from asmeurer/pickle

Partially make undefined Functions picklable (issue 1198)
Make the default color of LaTeX printing black instead of blue
Merge pull request #2115 from asmeurer/statistics_deprecation

Move all statistics related tests into the statistics module
Merge pull request #2111 from smichr/powsimp

watch for negated base pairs in powsimp
3826: reverse tan double angle
x.replace(x, y) -> y
sympify replace input
Merge pull request #2118 from smichr/replace

x.replace(x, y) -> y
Merge pull request #2122 from smichr/replace

sympify replace input
refactor the Miller-Rabin test code

also use pow(b, 2, n) rather than b**2 % n which is a bit more efficient
Fix srepr(Function) for non-undefined Functions

Now srepr(sin(x)) gives sin(Symbol('x')) instead of
Function('sin')(Symbol('x')).
use ZZ(base) in isprime
Merge pull request #2119 from smichr/isprime

refactor the Miller-Rabin test code
3821: simplify trig to exp and vice versa

recognizing I*tan(x) and tanh(x) will take a little more work
factor exptrigsimp out of simplify