Various small git improvements
- Minor refactoring
- calculate git status fully concurrently, there is no need to do 50% concurrently and the rest on main thread
- Make git status calculation more efficient => 0 unnecessary allocations
- Depend less on internal model details
- Introduce fuzzy filtering for git status items. This is important when you have lots of items in git status and you want to see a particular one. Its really painful to manually read through the list to find the file you are looking for.
Edited by Waqar Ahmed