Does one frame's work: settles a zoom whose steps have paused for the settle delay, and outside a zoom runs the scheduler's
frame (RunFrame(TimeSpan)), which draws or starts tiles within budget.
public bool RunFrame(TimeSpan budget)
true when the shell should run another frame: tiles remain to draw, or pending steps wait to settle.
false mid-gesture, until EndGesture().
Spec #33 viewer capabilities 1 and 2. Allocates nothing per frame beyond the tiles it starts.