Removes strict-boolean-expressions because its too noisy
Avoids unneeded `void`s to know if return value is intentionally discarded
Uses `type` imports when possible (avoids unneeded bundling)
Adds new visited paths trie for fast lookup of seen paths (to avoid git calls)
Replaces the tracked cache with a paths trie
All tries are case aware based on os and scheme (if uri based)
Adds new detectNestedRepositories setting to improve performance
Automatically handles nested repos for open document and remaps paths
Reworks isTracked for perf & nested repo detection
Changes excludes to a Set for faster matching
Splits getRepository into get & create (also removes async for get)
Replaces repo path methods with repo versions (part of moving away from string paths)
Renames getRemotes to getRemotesWithProviders & getRemotesCore to getRemotes