Move key binding extraction to background thread

It's hard to add multithreading incrementally, so this is a big change
set.

Highlights:
- Added threading support to KeyBindingExtractor.
- Moved code that touches the file system to KeyBindingExtractor class
so it can execute off the main thread.
- ShowKeyBindingsCommand checks the progress of the key binding
extraction and displays the results when it finishes.