Text flowing for samples/sample45

samples/sample45.rb had line breaking wrong from flowing text with different
fonts. If a text block fit on a single line but, because of font, was taller
than the preceding height, we bumped down prematurely.

These changes fixes #517, the issue reporting that. sample45 looked wrong on
Shoes 3 and 4.  I've left it for revealing the flow issue, but made
simple-font.rb with better alignment as an alternate, go-forward example.
Adding helpers for test readability

The text fitting tests get kind of heavy on all the coordinates and exact
values, but without them they aren't very meaningful.

This change introduces more helpers to give names to clusters of specific
setup and checks we do. For instance, using a hash so we can give numbers
useful naming at the call sites, and helpers for asserting positioning after
the fact more expressively.