Proof of concept: Shadow DOM support

We can already render into shadow roots, this diff lets us listen to events inside shadow DOM.