fix(cardano): inject Plutus POSIXTime in milliseconds for mempool validation
The phase-2 script-context evaluation in the mempool built pallas' `SlotConfig` directly from `ChainSummary`, which keeps `slot_length` and `timestamp` in seconds (the Ouroboros era-summary convention). Pallas' `SlotConfig` expects milliseconds and performs no scaling of its own (`zero_time + (slot - zero_slot) * slot_length`), so the resulting `POSIXTime` in `txInfoValidRange` was 1000x too small. Scripts that inspect the validity range (deadlines, time-locks) would mis-validate. Centralize the seconds->milliseconds conversion in a new `ChainSummary::to_pallas_slot_config()` helper and use it from `evaluate_tx`. This mirrors the existing gRPC era-summary boundary, which already multiplies `timestamp` by 1000 on output. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>