UnXFAIL an XPASSing pretty_sum test
Use binding = prettyForm.MUL in several classes' printers

This makes the classes be parenthesized when used in a Pow.  This is an
alternate fix to #1788.  I changed Integral, Sum, Product, and Derivative. In
general, any kind of operator should use this, since it is printed like the
operator *times* the operand.

Also remove the special casing in print_Pow from #1788, since it was incorrect
in light of the existence of the binding settings.

This is a better fix of issue 3260.
Fix the baseline for Piecewise printing

This fixes part of issue 3354.
Add new prettyForm binding, OPEN, which parenthesizes in Add

This is useful for things like Piecewise which need to be parenthesized even
in Add.

There is code in _print_Add that handles negatives that should probably be in
prettyForm.
Pretty print Piecewise always using parentheses

This changes the binding to OPEN, which causes it to parenthesize whenever it
is in an Add, Mul, or Pow.  This results in much easier to read expressions,
especially when a Piecewise is in an Add to the left of other terms.

This finishes the fixes of issue 3354.
Test a bug in Piecewise._eval_subs
3562: Replace Method for MutableMatrix
Code quality improved
Support for map argument added
Test added for map. Code Now compliant with PEP8
Implement next_lexicographic and prev_lexicographic:wq
MatrixExprs use real/integer/complex assumptions
move test_closed_group from sets to __init__
add Q.real/integer/complex_elements predicates
remove whitespace
MatrixElement Q.real/integer/complex
matrix element types for Ident, Zero, DFT
Skeleton for elliptic integrals
major rewrite of pull #1408:

    * change names
    * docstrings
    * some documentation
    * mpmath translations
    * eval(), fdiff(), some rewrite methods
Added tests for elliptic integrals