Complex Numbers: Rectified the output of expand_complex(I*oo)

  This bug is reported in the issue 4124.

https://code.google.com/p/sympy/issues/detail?id=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.
-> Corner cases like (having 0 and oo are real and imaginary parts) are handled in an effective and different manner which result in correct output.

fixes #4124