store vars on edges and rules, using std::map. costs 3ms / 5%. maybe faster with custom SmallDenseMap thingy.
also store per-file variables; add env thing
let edges point to their rules, implement some more lookup stuff
some eval wip; eval and validate pool depths
call Evaluate for includes, file-scope lets, edge-scope lets, defaults
prepare for Evaluate()ing edge inputs / outputs

Pushing just the IdentifierInfos into vectors takes 5-6ms / 10%! D:
Need to come up with something smarter.
actually push_back ins and outs; global vectors with clear() "fix" slowdown