WIP: Using a graph to calculate use of variables which cannot be assigned. This is not finished, semantics tests therefore still fail.
Graph-based variable checking seems to work.
And it does work. Usage is now calculated via traversal of a graph.