Handle all sub containers.

We weren't handling all sub containers in the 'key' situation. This was
confusing the parser and leading to it emitting the wrong bracket type
for the container. E.g. in this code:

def foo():
    return functools.reduce(operator.and_, [cls.interpret(nodelist[i]) for i in range(1,len(nodelist),2)])