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