Resolve conflicts in shared/relay/client/manager.go:
- NewManager: keep both sides. main's serverPicker.NetEvents wiring and
this branch's ForeignRelaysStore construction are independent.
- openConnVia/openConnOnTrack: take this branch's deletion. main refined
the RelayTrack rt.ready locking, but this branch replaces that machinery
with the singleflight-based ForeignRelaysStore, so the refinement applies
to a code path that no longer exists.
Carry main's netEvents plumbing into the new store so foreign relay dials
are still registered for the network change sweep.