Rewrote the manual paging code

Nebuleon spotted a bug in TextManualDialog where the unsigned value
'pages[page].text.size() - rowsPerPage' could wrap around at 0 for
short chapters. I decided to change a bit more than just fixing the
bug though.
Show at least one row per page

In theory a font could be so large that no full row would fit on the
allotted space; in that case showing a partial row is better than
nothing and will avoid bugs where -1 wraps around on unsigned exprs.
Correct the viewport area in TextManualDialog

Hardcoded coordinates now follow gmenu2x's usual content area rules.

Copy-pasted from TextDialog.