moving more functionality (cycle handling, missing/variable ref handling, etc) to the driver, and fixing tests. Still need to figure out how to store / navigate cycles in the neo4j driver.