The validation functions on the `tx` type masquerade the root error
message for the `Funds` validation. Having the original error helps to
save time when debugging the cause for a failed tx.
One example is if someone sends multiple funds to a contract execution
without sorting the denoms, which is one of the validations in the
`Coins.Validate` method. With the error propagation, the developer can
quickly determine why the tx failed.