Paginator to be used for data sets of known and unknown size. Provides first, last, previous, next, and paged functionality.