test: use browserContext.on instead attaching listeners to page
The previous implementation listeners from `browser.on` to the page instead of the browser.
The listeners would be stored and carried over to new pages, but that's unnecessary --
we can just use Playwright's builtin `browserContext.on` instead.
Incidentally, this also means that we won't be dropping promises from async listeners, like the previous implementation was, which may potentially improve some flakiness.