Comms windows and event scheduling

**Comms windows** are scheduled contact periods between a vehicle and a ground station. The Comms tab (under Mission) uses the Comms module's pass-prediction tool to surface upcoming windows.

For each window:
- Start / end (UTC + MET)
- Vehicle
- Ground station
- Max elevation
- Achievable data rate (uses the saved link budget)

Wally tool `mission_upcomingCommsWindows` returns the next N windows for the active mission.

**Mission events** (Events tab) are the timeline:
- Planned events from the flight plan (engine burns, maneuvers, EVA starts, payload deploys)
- Actual events from telemetry (auto-logged from Life Support, Propulsion, etc.)
- Manually logged events (crew activity, ground decisions)

MET is auto-computed from the mission's T-0 timestamp. The Events tab lets you toggle UTC vs MET display. `mission_logEvent` from Wally takes a free-form description and timestamps it correctly.