- renamed XmlParent to XmlBranch
- extracted parent behavior into mixin
- fixed the documentation
- Renamed `toString()` to `toXml()`. This is potentially breaking existing
  code, but a much cleaner solution going forward.
- reverted the breaking toXml change, not very useful
  because the debugger shows the type anyway
- add namespace URI to name