When searching through large amounts of data, it is often the case
that a result set is returned that is larger than we want to display
on one page.
This results in wanting to page through various pages of data.
The maths behind this is unfortunately fiddly, hence this module.
