fix: gracefully ignore --unrestricted on unsupported targets
Addresses PR review: instead of throwing when --unrestricted is used on a device/app that can't honor it, fall back to the auto-inferred signing mode and log a warning. This keeps callers device-agnostic - a script can always pass --unrestricted without first branching on device kind or app version. - Add downgradeUnsupportedUnrestricted helper (crypto-providers/util.ts). - Trezor and Keystone: warn + ignore instead of erroring. - Ledger: check compatibility.supportsUnrestrictedTransaction from getVersion(); on app v7 and older, warn + fall back. - Remove the now-unused Trezor/Keystone "not supported" errors. - Reword the --unrestricted help (code + README): "Ledger app v8 or newer"; "ignored (with a warning)" on Trezor/Keystone/older apps. - Unit tests for the fallback helper. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>