Revert "Revert "Don't do parameter extraction if a query already contains parameters""

This reverts commit 6c84b6039967d38b1d0dddbe65c9b5063a566b4b.
Do not create a new compiler for every schema state invalidation

Instead, make the Cypher Compiler 2.1 use a cache factory, which will
consult the PlanContext on whether it should create a new one in case
the schema had changed.