Use Cypher query cache to find plans based on AST

Cypher compiler is now recreated on schema change, to ensure cache
flushing.
Only do semantic checking on query cache miss