Previously, we would check failing input scripts twice when considering
a transaction for the mempool, in order to distinguish policy failures
from consensus failures. This allowed us both to provide a different
error message and to discourage peers for consensus failures. Because we
are no longer discouraging peers for consensus failures during tx relay,
and because checking a script can be expensive, only do this once.
Also renames non-mandatory-script-verify-flag error to
mempool-script-verify-flag-failed.
This is a backport of core#33050
https://github.com/bitcoin/bitcoin/pull/33050/commits/b29ae9efdfeeff774e32ee433ce67d8ed8ecd49f
Depends on D18933