code_review:
* use JsonSerializerContext to avoid AOT warnnings
* since we call TryAdd by interating the installed tools, so detecting by environment variable becomes meaningless (it can not detect tools not installed by Toolbox). Just add it into founded directly
* remove unnecessary type defines
* determine the Icon used by tool while adding it to the founded list.
# Conflicts:
# src/Native/Linux.cs
# src/Native/MacOS.cs
# src/Native/Windows.cs
* remove dotnet-tool.json because the project does not rely on any dotnet tools.
* remove Directory.Build.props because the solution has only one project.
* move src/SourceGit to src. It's not needed to put all sources into a subfolder of src since there's only one project.