refactor _MPMathFunction to work with multiple arguments
MPMathFunctions should use sympy on symbolic arguments not just exact numbers
implement LegendreP
implement JacobiP
implement SphericalHarmonicY
implement GegenbauerC
implement Chebyshev polynomials of the first and second kind
implement Hermite polynomials
implement Laguerre polynomials
add ZernikeR function scaffold
implement LegendreQ