Add many config options to `git fork`
Add many config options to `git fork`

The following can all be set through configuration:

Upstream repo information:

- `upstream`: GitHub `{{user}}/{{repo}}` for source
- `upuser`: `{{user}}` portion of source repository
- `uprepo`: `{{repo}}` portion of source repository

Fork/new repository information:

- `user`: `{{user}}` portion of new/forked repository
- `repo`: `{{repo}}` portion of new/forked repository

Script options:

- `token`: GitHub API token
- `dry`: activates "dry run" mode if non-empty

The only required configuration options are:

- `user`: in order to know where to create/fork repositories
- `token`: in order to make API requests

Configuration can be specified in the following places:

    ## repository- or global .gitconfig:
    [github]
      user = benizi
      token = 12345
    ## to (permanently) set on commandline:
    ## git config github.{{option}} {{value}}
    $ git config github.user benizi

    ## on the command line (for a single run):
    ## git -c github.{{option}}={{value}}
    $ git -c github.user=benizi fork

`upuser` and `uprepo` will be taken from the following locations:

1. explicitly configured (e.g., `git -c github.upuser=username fork`)
2. parsed from `upstream`, if set
3. parsed from first `git remote` URL that looks like it's on GitHub

benizi/dotfiles,benizi/dotfiles,benizi/dotfiles,benizi/dotfiles,benizi/dotfiles,benizi/dotfiles,benizi/dotfiles,benizi/dotfiles