Surface: Rewrite pagination class for DI.

Functions removed:
 * initialize()

Functions created:
 * set_total_items(): the minimal input of the library
 * button_label(): text for the first/last/next/previous
 * range(): how many visible pages around the current one
 * per_page(): how many items per page

Functions modified:
 * constructor: added reference to the request class, setting the
   base url & cursor in construction of the class.