Make 'git ls-files' invocation asynchronous

This patch introduces asynchronous invocation of ``git ls-files`` to avoid blocking user inputs during the initialization of file list in a huge project.