Fix two-factor authentication problem

Close https://github.com/node-gh/gh/issues/120 and https://github.com/node-gh/gh/issues/240 after the change in https://github.com/mikedeboer/node-github/pull/114 is applied and the package is republished on npm.

The code has a duplicated part which I'm not proud of, but I couldn't figure out how you guys would prefer the code to be reorganized to avoid this duplication so I decided to just pull it "as is" instead of trying to figure out by my own & lose a few hours & find out it wasn't the most suitable code style :dancers: 

1. try to auth w/ GitHub after querying for the password
2. in case of failure due to missing one-time-password, ask for it, and try again

I don't ask for the otp before trying to auth because if the user decides to use the two-factor SMS type instead of the app type it'd be annoying to type / copy / paste the credentials again.