Support paged results

Several methods (like `getCommits`) return multipage results. This adds methods to navigate through the results.

Since promises return a single value these methods are added to the returned JSON.