Add apply_snapshot_from_device to RlLobBackend: DtoD copy from perception SoA buffers into lobsim book arrays + book_update kernel. No host roundtrip, no sync (stream-ordered). step_with_lobsim_gpu now calls apply_snapshot_from_device with batch 0's last-snapshot (K-1) book data. Produces non-zero dones, pnl, wr. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>