Don't escape underscores in Function names in the LaTeX printer

The common case of underscores is to represent subscripts. If a function wants
a literal underscore, it should define its own printer.

This reverts #996 and fixes #2752.
unXFAIL matrix test
Complex Numbers: Rectified the output of expand_complex(I*oo)

-> This bug is reported in the issue 4124.
-> The output of expand_complex(I*oo) earlier was nan (wrong) and is now corrected to oo*I.
-> Modified the way two complex numbers are multiplied in the function as_real_imag() in core/mul.py.
-> This results in the function as_real_imag() returning the correct output.
-> Method of multiplication generally used:

   - Let A (a1 + I*a2) and B(b1 + I*b2) be two complex numbers.

   - Then we generally write A x B as (a1xb1 - a2xb2) + I*(a1xb2 + a2xb1).
   - This method fails for some corner cases.
   - If A is real or purely imaginary ( i.e a1=0 or b1=0 ) and  either real part or imaginary part of B is oo (i.e b1=oo
     or b2=oo) this method fails because it results in terms like 0 x oo which is nan.

-> Example:
   - (0 + I*5) x (8 + I*oo) = (0x8 - 5xoo) + I*(40 + 0xoo).
   - According the above approach the real part is -oo whereas the imaginary part is nan which is wrong.

-> Corner cases like the ones stated above are handled in an effective and different manner which result in correct ouput.

Correct Output:
  In [1]: from sympy import *

  In [2]: expand_complex(I*oo)
  Out[2]: oo*I
Complex: Done the changes mentioned
Complex Numbers: Added test file and removed white spaces
Complex Numbers: Implemented a simpler method to fix issue 4184

Conflicts:
	sympy/core/mul.py
Merge pull request #2814 from pramodch/4124_complex

Complex Numbers: Rectified the output of expand_complex(I*oo)
Add Pramod Ch to AUTHORS/aboutus. Welcome to SymPy!
lambdify preserves args shape

You can call a lambdified function with arguments having the
same shape as those that were sent to lambdify:

>>> f = lambdify((a, (b, c)), a + b*c)
>>> f(1, (2, 3))
7
Merge pull request #2752 from asmeurer/latex_underscore

Underscore escaped in latex with \operatorname
Merge pull request #2819 from smichr/auth

Add Pramod Ch to AUTHORS/aboutus. Welcome to SymPy!
Merge pull request #2809 from smichr/2790

lambdify preserves arg shape
Merge pull request #2813 from skirpichev/2096-zoo

Fix issue 2096: 1/0 should be zoo, not oo
Change zoo.is_number to be True
Revert "Fix test failures in concrete module.  XXX: why zoo.is_number is False?"

This reverts commit ea8014190e1e47880aa78edd0ebe0e52afccd54d.