Deletes all oracle_cash infrastructure: the background poller
(oracle_cash.rs), DB layer (db/oracle/oracle_cash.rs), RPC endpoints
(cash/closest, cash/history), table init, and all wiring in main.rs.
usd_per_bch_at_or_before is simplified to a single get_closest(&None, ts)
call now that Delphi v2 data is indexed in the same delphi_entry table.
Returns anyhow::Result<Decimal> and errors instead of silently returning
zero when no oracle price is available. Callers updated with ?.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This makes the application fully async; freeing web server threads to
handle new connections when waiting on SQL queries.
Additionally sqlx will allow easier move to a different database if
needed in the future.
Includes some SQL optimizations as well (slow queries more easliy identifiable
with sqlx).