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