Update russian translation of tutorial.
Merge pull request #1140 from smichr/subs

fix Add._eval_subs
add sort=True keyword to __print_Boolean
Merge pull request #1136 from smichr/bool-sort

do not sort Implies arguments
Merge pull request #1141 from rlamy/comparable

Move is_comparable out of the assumption system
3164: cse watches for production of non-Basic
Merge pull request #1133 from mrocklin/intersection

Intersection Set Class
watch for exp when rejoining bkey in powsimp
3109: Pow._eval_power rules more accurate

The rules for combining (x**a)**b into x**(a*b) have been updated;
the conditions are enumerated in Pow._eval_power. The same sort of thing
should also be done to exp (see issue 3109).

Here are comments about the old rules:

Formerly-

The following was ok:
-        if other.is_integer:
-            return Pow(b, e * other)

The condition that other.is_real should not be added; if e is complex then
the joined exponent may not be valid, e.g. (3**(4*I))**(1/2) != 3**(2*I)
        if b.is_nonnegative and (e.is_real or other.is_real):
-            return Pow(b, e * other)

ok:
-        if e.is_even and b.is_real: # hence b is pos and e is real
-            return Pow(abs(b), e * other)

only valid if e.is_real and then it's true whether other is real or not
-        if abs(e) < S.One and other.is_real:
-            return Pow(b, e * other)

ok (if that's how exp_polar should behave)
-        if b.is_polar:
-            return Pow(b, e * other)

The rules above are missing the handling of possible complex powers where
e.is_real is False and abs(e) < S.Pi/abs(log(b)) and the simple case where
other is a multiple of 1/2 and abs(e) < S.Pi/abs(log(b))

This function can be used to test whether two exponents should combine.
if False is printed, then (e**a)**b should not become e**(a*b) and the
difference between (e**a)**b and e**(a*b) is printed.

>>> def foo(a,b,e=E):

...  ib=S(1)/b;print abs(a*log(e)/pi).n() < 1
...  return ((e**a).n()**ib - e**(a*ib)).n(chop=1e-10)
...
>>> foo(2*I,3,6*I)
False
0.0892124078593689 - 0.601228142633338*I
>>> foo(I/3,3,6*I)
True
0
3109: exp._eval_power rules more accurate
3109: Pow.as_numer_denom power rules more accurate
3109: Mul._eval_power is more accurate

The negative on the coefficient was being allowed to sneak out of the
Rational power's args.
Merge pull request #1105 from smichr/3109

3109 update power rules
Fix of issue 2962: implemented correct presentations of D1 and D2.

The dihedral groups Dn for n = 1 and n = 2 are exceptional in the
sense that they cannot be embedded in the symmetric group Sn
as all the other dihedral groups can. This was taken care of
by explicitly providing the natural presentations of the
two groups, as subgroups of S2 and S4 respectively.
Merge pull request #1146 from amakelov/2962_fix

issue 2962: wrong Dn groups for n=1 or 2

gsoc patch requirement
[integrals] Fix issue 3153.

Slightly improve _split_mul in meijerint.py to recognise (b*(x-1/b) + 1)**a
as (b*x)**a.

Add a test regarding the particular integral of the issue.
Merge pull request #1149 from ness01/3153

[integrals] Fix issue 3153.
Merge pull request #892 from goodok/ru_tut

Add tutorial Russian translation of the new format: tutorial.ru.po
Improved trigonometric Functions

Replaced pow with Pow.
corrected test file.Tests passed
Fix printing tests for new coupled spin state args