Split up DecodePSBT, which both decodes base64 and then deserializes a PartiallySignedTransaction, into two functions: DecodeBase64PSBT, which retains the old behavior, and DecodeRawPSBT, which only performs the deserialization. Add a test for base64 decoding failure.
Partial backport of core PR14978:
https://github.com/bitcoin/bitcoin/pull/14978/commits/c734aaa15d924470cec0f17b00ad2e47472b471f
Depends on D5736.