prop.get and Session::expression_errors (Reveal Expression Errors, the
viewer's error banner) built their expression context without the
footage source, so an expression that reads footage pixels
(sampleImage) gave a different value or a spurious error there while
it worked in the render and in expr.errors (#1000).
expr_tools::eval_ctx builds the render's context (expression host and
footage source) for a comp at a time; expr.errors, prop.get,
Session::expression_errors and the script value query all use it.
Fixes#3231