Shell out only once to list git remotes and their URLs

Each hub invocation would previously shell out twice to `git remote`:
1. Once to get the list of available remote names
2. A second time to obtain remote URLs with `remote -v`

With the new approach, we get the list of available remotes and collect
their URLs in the same pass. This is part of an effort to reduce the
number of shelling out to git if not absolutely necessary.