change lucene query generation

before symbols were used to generate xcontent which was then parsed by ES
components to generate lucene query classes. So the process was:

    symbols -> xcontent -> query

This commit removes the -> xcontent step for all SELECT queries (DELETE /
UPDATE still use xcontent) so now it is:

    symbols -> query

This also enables a generic "FunctionFilter" which is a fallback that will use
the Scalar functions to evaluate any conditions in the where clause if it is
not possible to create optimized Lucene queries.

So with this commit it is possible to do stuff like

    where oneCol = anotherCol