Speed improvements to `gravmag.tesseroid`

Moved some things over to Cython, precomputing sines and cossines, using buffers to avoid malloc in loops and removed most numpy array fancy indexing.
Comparing to  [Tesseroids](http://leouieda.github.io/tesseroids/) (written in C):
* 2x slower for 2deg tesseroids at 50km
* 10% faster for 1deg tesseroids at 50km
* 1.75x faster for 1deg tesseroids at 250km
* 2x faster for 2deg tesseroids at 250km

Current bottlenecks are:
1. Calculating distances
2. Separating for which computation points I need to divide the tesseroid

So it seems that, if I need to split he tesseroid **a lot**, then the Python code is really slow.
But in cases that I have computation at least 1x size of tesseroid away, the Python code is much faster the C.