Reworked how command arguments are handled when launching browsers. Previously, args on a command were appended to the URL (with an optional url_encode flag), which was a confusing overload. Now args are treated as browser flags passed directly to the browser process. This is a cleaner model — if a command has a browser configured, the args go to the browser; if it’s a terminal command, the args go to the shell. Removed the url_encode field and the urlencoding dependency since they’re no longer needed.

Added #[serde(deny_unknown_fields)] to the config structs (Config, Project, ProjectCommand) so typos or stale fields in YAML config files produce clear errors instead of being silently ignored.

Also added a --debug flag to the list command that prints the full resolved command before executing it — handy for troubleshooting when a command isn’t launching the way you expect. And cleaned up main.rs to print errors with a “Press Enter to exit” prompt instead of returning Result from main, which gives better feedback when running in Windows Terminal where the window would otherwise close immediately.