Make phi nan if theta is nan
Showers from above!

DirectAlgorithm is 2D so should return zenith = 0 when dt1 and dt2 are
0.
Add tests for some special cases

Test each algorithm to see they give the same results.
DirectAlgorithmCartesian2D and FitAlgorithm don't pass all tests.
Should be made more robust.