Instead of using CombineSignatures to create the final scriptSig or
scriptWitness of an input, use ProduceSignature itself.
To allow for ProduceSignature to place signatures, pubkeys, and scripts
that it does not know about, we pass down the SignatureData to SignStep
which pulls out the information that it needs from the SignatureData.
This is a partial backport of Core PR13425 : https://github.com/bitcoin/bitcoin/pull/13425/commits/ed94c8b556dbbfb62452eaefd9ee7841df09777a