CTxDestination is really our internal representation of an address and
doesn't really have anything to do with standard script types, so move
them to their own file.
This commit addresses #20809.
We add an additional 'error' property in the result of 'validateaddress' in case the address is not valid that gives a short description of why the address in invalid. We also change the error message returned by 'getaddressinfo' in case the address is invalid.