ENH: scipy.special, Implemented Ellipsoidal harmonic function: the first kind, the second kind and normalization constant 

This is an attempt to implement ellipsoidal harmonic functionality. 
The functions implemented are
ellip_harm, ellip_harm_2, ellip_normal
The sources referred to are:
http://www.geology.osu.edu/~jekeli.1/OSUReports/reports/report_499.pdf
http://arxiv.org/abs/1204.0267
I'd recommend changing the test setup a bit:
```
known_funcs = {(1, 1): G11, (1, 2): G12, (1, 3): G13, (2,1): G21, ... }
def ellip_normal_known(h2, k2, n, p):
    func = known_funcs[(int(n), int(p))]
    return func(h2, k2)

# generate both large and small h2 < k2 pairs
np.random.seed(1234)
h2 = np.random.pareto(0.5, size=30)
k2 = h2 * (1 + np.random.pareto(0.5, size=h2.size))

points = []
for n in range(4):
    for p in range(1, 2*n+2):
        values.append((h2, k2, n*np.ones(h2.size), p*np.ones(h2.size)))
points = np.array(points)

assert_func_equal(ellip_normal, ellip_normal_known, points)
```
so that it tests many h2, k2 combinations of various orders of magnitude.