806: Implement hyper.rewrite(Sum)

This adds the function _eval_rewrite_as_Sum to the class hyper.
806: hyper.rewrite(Sum)

Change return value to Piecewise
Add tests
MatrixExprs use real/integer/complex assumptions
move test_closed_group from sets to __init__
add Q.real/integer/complex_elements predicates
806: Improve code style
remove whitespace
MatrixElement Q.real/integer/complex
matrix element types for Ident, Zero, DFT
Merge pull request #2032 from katjasophie/806_hyper.rewrite(Sum)

Issue 806: Implement hyper.rewrite(Sum)
Update Raoul in the .mailmap file
Merge branch 'master' of github.com:sympy/sympy
fix Sum and Product _eval_subs
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
Some support for latex printing of elliptic integrals
Add tests for elliptic integrals in test_args.py
Add complete elliptic integrals to the table for hyperexpand()
Hermite quadratic version to Mack's Linear version

Have reduced the time complexity involved in the hermite reduction (method) from m^2 to m-1 by using Mack's linear version instead of the quadratic function.
Also no partial fraction decomposition of f(input function )or square-free factorization of its denominator is required decreasing the time complexity further