Support asynchronous `question.default`

- change as few lines as possible
- try my best to fit the original style of whitespaces and CRLF
- leave the memleak warning of node.js which was already existing. Should I make another commit to fix the problem by adding a line of `process.stdin.setMaxListeners(20)` ?