_RemoteVideoView and _LocalVideoPip watched the Riverpod provider but
not the LiveKit Room's ChangeNotifier. When a remote participant joined
or published a track, notifyListeners() fired but no widget rebuilt.
Fix: wrap both views in ListenableBuilder(listenable: room) so they
rebuild on every Room event (participant connect, track subscribe, etc).
Added _AudioOnlyPlaceholder for when remote has audio but no video.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>