feat(view): add support for components that use shadow dom emulation

This should allow us to run the tree benchmark in Firefox and other browsers.
use a class for `ShadowDom` and move `Emulated` and `Native` properties as `static` members inside.