This creates a cleaner interface with ATMP, allows us to make results const,
and makes accessing values that don't make sense (e.g. fee when tx is
invalid) an error.
This is a backport of core#21062 [2/4]
https://github.com/bitcoin/bitcoin/pull/21062/commits/f82baf0762f60c2ca5ffc339b095f9271d7c2f33
Note: changes related to RBF are not applicable
Depends on D11778