As Castle guards the repeats, no more state is needed for these repeats
Check for staleness up front, so that it is safe to use u32 values to handle adding more tops. Adds LargeGap unit tests.
In some ring-based models, we know that if the ring is not stale, then all our bounds should fit within 32-bits. This change makes these explicitly u32 rather than implicitly narrowing later on.