fix(fee_rate): parse fee_rate at clap and keep sub-sat/vB precision
`--fee_rate` was taken as `f32` in the tx-building commands and cast
`as u64`, which both truncates and saturates. When `FeeRate::from_sat_per_vb`
returned `None` the value was silently skipped in `create_tx`, `create_sp_tx`
and `create_dns_tx`, `bump_fee` fell back to `FeeRate::BROADCAST_MIN`, and
`send_payjoin` took a `u64` and panicked, so the user got a fee they never
asked for or no transaction at all.
- add `parse_fee_rate` and pass it as a clap `value_parser`, so invalid
values are rejected
- store `FeeRate` instead of `f32`/`u64`, converting via sat/kwu so
fractional rates keep 1/250 sat/vB precision rather than truncating
- drop the `unwrap_or(FeeRate::BROADCAST_MIN)` fallback in `bump_fee` and
the `expect` in `send_payjoin`
- cover parsing and rejection with unit and integration tests