feat: implement LRU cache and improve its benchmarks
At the moment all the query ASTs are cached in the engine LRU cache. There is not much sense in it since we don't support parameters at the moment, but it would be done later.
To get ready for parameters we have also added parameters support in the grammar, but didn't implement it in the AST code.
Edited by Alexey Protsenko