Add custom interpolation
This MR calls the underlying interpolation routines in scipy rather than using the scipy interp2d method.
This removes some overheads/safety checking which will make things a little faster for time and distance marginalized runs.
I also removed the part where it does the outer product when two arrays are passed. This was also needed for !856 (merged).