Remove unused attachChildrenLazily method and make attach/detachChildren private
No one should be manually trying to attach or detach all their children so there's
no reason for these methods to be public.
In doing this I realized that attachChildrenLazily is not used and can be removed.
I also realized that we were detaching all our children before the ShadowRoots which
is sad since the InsertionPoints will call detach() on them as well, and then when we
call ContainerNode::detach at the end of Element::detach we'll go detach them again!
This patch makes it so we only go through and detach them twice instead of three times.
In the future we should figure out a way to only do this once.