* fix(jsonata): ensure all evaluations use a new environment
When evaluating a JSONata expression concurrently, specifically when reusing
an expression instance (as we do since we cache them), it's possible that
a second concurrent evaluate() call clobbers the `$` binding before the
first one has finished, which will make it use incorrect values.
Passing in a non-undefined bindings value causes JSONata to instead
create a new environment for each evaluate() call, preventing these conflicts.
Fixes#40311.
* fix(jsonata): concurrency issues by wrapping jsonata.Expression
* fix(jsonata): tweak return type and revert no-longer-necessary change
---------
Co-authored-by: secustor <sebastian@poxhofer.at>