Introduce CypherOptionParser
Switch top-level CypherCompiler to using CypherOptionParser

o Rename Prepared to ParsedQuery and clean up interface
o Fix CypherOptionParser's parsing of versions
Extract common code into Base
Merge pull request #2757 from systay/pre-parser

Introduce a pre-parser in preparation for PROFILE/EXPLAIN
Merge 2.1-maint into master
Merge pull request #2764 from systay/2.1-merge-into-master

2.1 merge into master