Support GitHub 2-factor authentication

It works by passing the auth code via the `GITHUB_TWO_FACTOR` environment variable.

Unfortunately, the patch is really ugly. I tried assigning the header flags to CURL_OPTS and just passing that, but the quoting is really hard to get right. This patch is testing and working for 2-factor, at least.