git: add 'refspec' argument

This argument may be used to fetch additional refs beyond the default refs/heads/* and refs/tags/*.
For example, useful to check out a GitHub pull request or Gerrit patch set.
I think you're right.  The updated version reduces the number of commands.  However it still ends up doing two fetches if you specify a custom refspec in non-bare mode, since AFAIK there's no way to append a refspec to git's default behavior in that scenario.