refactor(wallet): route all wallet ops through the Mesh 1.9 bridge + guardrail
Every signing/wallet call must use useMeshWallet()/useActiveWallet() (the Mesh 1.9 IWallet), never react-2.0's useWallet().wallet — the latter is a low-level CIP-30 wallet whose signData(address, payload) / signTx(tx, partialSign) signatures differ from 1.9, so a wrong-order call compiles but signs the wrong bytes. Fixes 3 live latent copies of that bug (same root cause as the WalletAuth modal fix): - HydraBudgetVote: signData on the react-2.0 wallet — the likely source of the ballot witness/body-hash divergence. - instance-tab (cross-instance import): would fail with CIP-30 -2 on VESPR. - api-docs bearer-token generation: same swapped-args failure. Also migrates the remaining read-only useWallet().wallet sites (address / network-id lookups, identical across versions) to the bridge so the boundary is uniform, and adds null guards where the bridge wallet is transiently null while enabling. Guardrail: an ESLint no-restricted-syntax rule makes destructuring `wallet` from useWallet() a build error, so this bug class can't regress. useWallet() stays allowed for connection state (name/connected/connect/ disconnect). Verified the rule fires on a violation and passes the bridge. Co-Authored-By: Claude Fable 5 <[email protected]>