implement `Node shadow([Build b])` to fix #2

the scope stack in `builder.dart` is now a `List<Node>` to acomodate the
shadowroot