gh-repos-forks-list: optionally also get forks of forks

Add new optional RECURSIVE argument.  When non-nil make additional api
requests to include all forks of a repository, including indirect forks.
constructor(gh-repos-repo): improve use of NEWNAME to set slots

  (gh-repos-repo "OWNER/NAME")

returns exactly the same as

  (gh-repos-repo "NAME"
                 :name "NAME"
                 :owner (gh-user "OWNER" :login "OWNER"))
constructor(gh-repos-repo): support (OWNER . NAME) as NEWNAME

  (gh-repos-repo (cons "OWNER" "NAME")

can now be used instead of

  (gh-repos-repo "OWNER/NAME")

both are equivalent to

  (gh-repos-repo "NAME"
                 :name "NAME"
                 :owner (gh-user "OWNER" :login "OWNER"))
gh-api-paging-links: move noisy lookup inside

Previously the (only) caller did the work of looking up the links in the
response object and then called `gh-api-paging-links' with the result as
only argument. Now `gh-api-paging-links' does the lookup itself and
expects a response object as argument.