AllAccessPoints is not exposed by this NetworkManager ('No such property'),
so getAccessPoints() hit the error path and returned an empty scan list
with no log output. AccessPoints is the current scan results and is
universally supported. Also log the property-read failure instead of
failing silently.
parseAccessPoint() is extracted from an anonymous namespace so the pure
property->AccessPointInfo mapping is testable. getAccessPoints() now reads
the Flags/WpaFlags/RsnFlags properties (they were never read, so every
network was reported Open and connections lacked a security section) and
fixes the double container-enter on the SSID 'ay' read that silently
emptied the scan list.
The WiFi page only re-read the access-point list every 3s, so a scan
that was slow, denied, or interrupted left the network list permanently
empty until a manual F5. Re-request the scan on each timer tick (skipped
while a connection attempt is in flight) so results appear automatically
once NetworkManager completes a scan.
The RequestScan result and the underlying sd_bus error were silently
dropped, so a denied or failed scan looked identical to an empty scan
list on the WiFi setup page. Surface both so the deployed-machine
diagnosis (e.g. user not in the networkmanager group) is visible in
~/.local/radiantwave/log.txt.