The idea behind the refactoring is to :-
 make the interface to the paginator easier.
 make the code conform better to psr standards
 make the code easier to unit test

It should be noted that I have not currently rewritten the use of the pagination class
in either catalog or admin. This will be addressed in a separate commit.