ENH: scipy.special: Improving sph_harm function 

The sph_harm function used for calculating spherical harmonic at present is written in Python and it uses the routine lpmn to calculate the required Associated Legendre function. The routine lpmn iteratively evaluates the function for all values <= m,n every time it is passed, the value required by the sph_harm is just that of the function at m and n (and not at <m,n)
Therefore the routine is substituted by another similar existing routine lpmv, thus avoiding the unnecessary iterations and increasing the speed of the function.
Further the function is rewritten in Cython to increase the precision and speed.