How does Soroban manage deterministic metering of compute and storage costs in a multi-invocation contract call stack, and how does it ensure WASM contract execution adheres to Stellar’s budget constraints while preserving composability and contract isolation