Ensure selectable container fix

This fixes the issue when inserting a node with a child node but no text content, a```BR``` is added to the wrong place.
E.g. ```<p><b></b></p>``` => ```<p><b></b><br></p>``` when it should be ```<p><b><br></b></p>```
I wonder if we should abstract this traverse function so that it can be re-used for other purposes. It's a shame we have to avoid using the `TreeWalker`.