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 just use `instanceof Number` and then call `doubleValue()`?