Allows to define page size for repository lists.

Extension of the listRepositories() with the desired
pageSize. This allows to reduce the number of calls
to GitHub API for fetching the entire set of repositories
browsing all the pages.

Additionally allows to match the UX paging with the
underlying GitHub API paging, increasing performance
and reducing hourly API allowance.
GHRepository owner is NOT a GHUser but more generically a GHPerson.

When GitHub repositories are associated to organisations,
the owner is NOT the user but the org itself.
Allows fetching pull requests by knowing repo-name and owner.
Gets commit details of a pull request.

Retrieves the list of commits included in the pull request.
Commit object returned is not a full GHCommit and includes
just a small subset of information.
Massaging the pull request.

- GHPerson really should be an abstract class
- static listPullRequests method does not fit the design of this
  library, although I'm very sympathetic as to why Luca wanted to do it.
  Nonetheless I'm removing this in favor of the lazy loading of the
  state to avoid unnecessary calls in the future.
Merged pull request #45 with some changes