Refactoring of the top level Cypher compiler and how it handles compatibility with older compilers