Define the Package type as an alias for a vector of transactions for now.
Add PackageValidationResult, similar to TxValidationResult and
BlockValidationResult for package-wide errors that cannot be reported
within a single transaction result, such as having too many
transactions in the package. We can update the concept of
what a package is and have different logic for packages vs lists of
transactions in the future, e.g. for package relay.
This is a backport of core#20833 [4/13]
https://github.com/bitcoin/bitcoin/pull/20833/commits/b88d77aec5e7bef5305a668d15031351c0548b4d