'Add an item to a key.
If a value is already associated with that key, the new
value is appended to the list for the key.'

def append_item(self, key, value, section=_MIDDLE):

    key_parts = key.split('.')
    current = self._root
    for part in key_parts:
        if (part not in current['children']):
            new_child = {'chunk': part, 'values': None, 'children': {}}
            current['children'][part] = new_child
            current = new_child
        else:
            current = current['children'][part]
    if (current['values'] is None):
        current['values'] = NodeList([], [], [])
    current['values'][section].append(value)
