Scripting: Add script engine for lucene expressions

Adds support for new "expression" script engine.

This is backed by lucene expressions.  These are javascript expressions, which can only access numeric fielddata, parameters, and _score.  They can only be used for searches (not document updates).

closes #6818
Can we remove this expensive per-document stuff? It sorta totally defeats the point of having expressions!

Can these hacks be moved to setScorer or setNextReader? why isn't setScorer being called, can you expand on the comment? that seems broken...