Refactor insert/materialize node schemas.

The only advantage that I can see over "static" (from searching stack exchange just now) is that you can't declare types to be static.  I.e., "static class foo {};" would not compile.  I don't have a strong feeling either way---maybe it would be good to use "static" for functions and anonymous namespaces for classes.