Add tests for adding children
Add tests for creating nested tags
Refactor tag()

This is much faster when there are large lists of children (and the code is
much simpler!)