Print: better calculation of the row height in table print

Instead of odd hard coded offsets we evaluate the height of a single line and
modify the height per row (and the vertical positioning of the text within that
row) by a fraction of that height.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Print: implement dynamic pagination of the table layout

Instead of a fixed number of dives per page we are now using the paginate
callback to dynamically figure out how many pages we need and which dive to
start each page with.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>