Add a "StatementBlock" AstNode.

This acts as a container for a set of statements that run in a particular
scope, allowing us to keep track of the scopes generated during the
interpreter phase so we can mirror them in the generated C code.