Only apply the implicit PageContext if there are no declarative contexts...

... and no context listeners in the worker.

I misunderstood the behaviour when there were no declarative contexts but were context listeners in the content script which leaves us behaving differently in at least one real world example I've seen. This should fix it and add tests around it. Can you review @gozala?