[refactor] interpreter: define interface for vfExec
[refactor] interpreter: define interface for vfExec

Summary:
Includes comments added by Pieter Wuille.

This is a backport of Core [[https://github.com/bitcoin/bitcoin/pull/16902 | PR16902]] [2/3]
https://github.com/bitcoin/bitcoin/pull/16902/commits/d0e8f4d5d8ddaccb37f98b7989fb944081e41ab8

Depends on D8835

Test Plan:
```
ninja all check-all
src/bench/bitcoin-bench -filter=VerifyNestedIfScript
```

Reviewers: #bitcoin_abc, majcosta

Reviewed By: #bitcoin_abc, majcosta

Subscribers: majcosta

Differential Revision: https://reviews.bitcoinabc.org/D8836

Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc,Bitcoin-ABC/bitcoin-abc