Atomically execute a multi-hop arbitrage path.
Safety: snapshots token_in balance of caller before swaps and panics
(reverts the transaction) if final_balance < initial_balance + min_profit.
fn execute_arb(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
token_in: soroban_sdk::Address,
amount_in: i128,
min_profit: i128,
hops: soroban_sdk::Vec,
)