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)
Providers can now choose how to handle editor contents blaming
Simplies "commit" line model to just have line & originalLine
- Not really accurate for log parsing, but close enough
Adds forces line blame to improve performance
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
Avoids debouncing repo change events
Allows for immediate resetting up data, but still debounces updates
Also avoids a repo change event clearing valuable data after the fact
Reorganizes local git support to exclude from web
Swaps sha1 usages to md5 to avoid needing sha1 on the web (md5 is required by Gravatar)
Avoids crypto-browserfy and imports md5.js directly
Uses platform crypto for random nonce strings