make StructureDeclarations a singleton not a mixin

this seems cleaner to me, and also I'm interested in exploring the
possibility of expanding the use of these AST classes in place of
the ones in AstNode (because the AstNode ones depend on the engine
and these don't)