bark: Make inserting vtxos idempotent to fix bark round bug
The `store_vtxo_with_initial_state` function used a raw INSERT which
failed with a `UNIQUE constraint failed` error if called twice with the
same VTXO ID.
This caused issues in the round code's crash recovery logic. During
`persist_round_success`, if the process crashes after storing new VTXOs
but before the round state is cleaned up, the next sync would attempt
to retry the operation. The retry would fail on the duplicate INSERT,
leaving the wallet in an inconsistent state where it couldn't recover
from the interrupted round.
Fixes: #1337 (closed)