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.
Rename the ConnRacer type to FallbackOpener and its constructor to
NewFallbackOpener. Rename fallback.go to fallback_opener.go and
foreign_relays.go to foreign_relays_store.go so file names mirror their
primary struct.