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"))