transaction: add functionality to have multiple validators
This will help us in adding more validators which can aggregate data from
transaction and prompt user whether to commit the transaction or not.
The current target is to use this to implement `pull --confirm`.
Differential Revision: https://phab.mercurial-scm.org/D8198
{
"conduit_uri": "https://phab.mercurial-scm.org/api",
"phabricator.uri": "https://phab.mercurial-scm.org/",
"repository.callsign": "HG",
"arc.land.onto.default": "@",
"base": "hg:.^"
}