utility to combine PaymentTransactionInfoPlugins

Maybe the pull request can be simplified to hide internal changes that aren't interesting after the fact
Why `defined?`? It should always exist.