Use deque as children container

Refactor ASTNode to not use container with incomplete types