Fixed rise/set and altitude searches for polar regions
The functions for searching for rise/set events did not always work reliably in polar regions. It was possible to miss a sunrise, moonset, etc., within the arctic and antarctic circles. Geographic locations near the Earth's north pole or south pole have some unusual and counterintuitive properties regarding rise/set of celestial bodies.
For example, if you are standing on the north pole, the Sun rises only once per year (near the March equinox), and sets only once per year (near the September equinox). The Earth's rotation causes the Sun to move in circles all the way around the sky, but it Sun only moves toward or away from the horizon due to seasonal changes in its declination. At the poles, the Earth's rotation has absolutely no effect on how high/low the Sun appears to be in the sky.
As an observer moves away from the poles and towards the equator, the Earth's rotation starts to have more effect on the rise/set behavior of observed celestial bodies. The timing of rise/set becomes a combination of the observer's latitude, the rotation of the Earth, and the body's right ascension and declination.
This leads to some other interesting behavior. At latitude 85°N, there are times where the Moon will rise, stay partially visible for about 20 minutes, then set again. This brief appearance of the Moon was being skipped by Astronomy Engine. Now Astronomy Engine will find any such rapid rise-then-set or set-then-rise sequence that lasts for longer than 1 second.
In this release of Astronomy Engine, the rise/set logic has been completely overhauled to work reliably in all cases. I added new test data from the US Naval Observatory to cover cases in polar regions. Those test all pass now.