What does the NodeControl do?
| W |
- Call self.allow_output to see if this control should output anything at all.
- If so, it calls node_output node_output should return the container into which all its children should output. It can be the container which node_output got, a new container (which should have been inserted in the original one) or None.
- If the return value of node_output (or the original container if allow_output returned false) is not None, then the output functions of the children are called with this container as the original container.
- Otherwise, the children dont get to output anything at all.
Hence one call to the output method of the top level NodeControl ends up calling the output methods of the entire tree. All the creativity for a particular page goes into designing the node_output functions.

