'Look up a child atom, potentially recursively.
e.g. atom[\'udta\', \'meta\'] => <Atom name=\'meta\' ...>'

def __getitem__(self, remaining):

    if (not remaining):
        return self
    elif (self.children is None):
        raise KeyError(('%r    is    not    a    container' % self.name))
    for child in self.children:
        if (child.name == remaining[0]):
            return child[remaining[1:]]
    else:
        raise KeyError(('%r    not    found' % remaining[0]))
