Two fixes for ads behaving differently from config:
1. Test devices now actually register. Admob.Start was notImplemented on both
platforms and AdmobInit's System.getenv("ADMOB_TEST_DEVICES") isn't populated
in the native process, so setTestDeviceIds never ran -> registered test
devices still got real ads. Start now applies the test_devices passed as a
bridge param (config('admob.test_devices')) via setRequestConfiguration on
Android + iOS. (Host must call Admob::start().)
2. App-open auto-show is now suppressible. AppOpenLifecycle presents on
foreground outside any per-request gate, so a previously-loaded app-open
would still show after an ad-free pass was granted. New
Admob::setAppOpenSuppressed(bool) + Admob.SetAppOpenSuppressed bridge toggle
a native kill-switch the lifecycle honours (Android + iOS).
Co-Authored-By: Claude <noreply@anthropic.com>