Resolves issue #3443: the `agents plan rollback` confirmation prompt was
missing the checkpoint's descriptive label, relative creation time, and
side-effects count (decisions invalidated / child plans cancelled).
Changes:
- Added `_format_relative_time(dt)` helper to produce human-readable
relative timestamps (e.g. "42 minutes ago", "2 hours ago").
- In `rollback_plan`, moved `get_container()` / `checkpoint_service()`
before the confirmation block so checkpoint metadata is available.
- When `--yes` is not passed, `svc.get_checkpoint()` is called to fetch
the checkpoint label (`metadata.reason`) and creation time.
- Decisions created after the checkpoint are counted via
`decision_service.list_decisions()`; `subplan_spawn` /
`subplan_parallel_spawn` decisions are counted as child plans.
- Side-effects line is printed before the prompt when counts > 0.
- Falls back to the original simple prompt if checkpoint metadata
cannot be fetched (e.g. checkpoint not found).
- Updated existing rollback mock helpers to wire `get_checkpoint` and
`decision_service` properly.
- Added 3 new Behave scenarios covering label display, side-effects
display, and fallback behaviour.
Closes#3443