app: Handle initially incorrect NetworkMonitor state
The portal implementation now fetches the initial state asynchronously, which means that "offline" can now either mean "offline" or a newly initialized singleton that hasn't fetched its state yet.
Address this by tracking whether the state is valid, and wait for a ::network-changed signal otherwise. In particular this fixes cutting off existing connections on startup due to an incorrect offline state.