This PR cleans up the interfaces of the FundTransaction functions by returning the out-parameters (fee, change output, error) as util::Result with a newly created structure FundedTransactionResult. It can be seen as a late follow-up to #20640 which did a similar operation to the CreateTransaction{Internal} functions. Note that there are actually two functions FundTransaction with the same name:
Only the first returns an error and hence needs to be wrapped into util::Result, the other one can directly return the result structure.