Set up AST node hierarchy and keyword constants

Well, ideally the validation generator will know the most about JSON schema rules. I’d rather we store enough information here so that validation generator can make the best decision. I guess I just worry that we’re losing fidelity or making this a little harder to work with here. Like, the parser shouldn’t know anything about how we do validation, right? That’s the validation generator’s job.