Rewrote block finder algorithm to use an Iterator algorithm, and to guarantee that it always finds the closest block first.  Fixes #1, fixes #2