Refactor Bitcoin block parsing to match changes from Bitcoin v0.22

https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-22.0.md

The following RPCs: gettxout, getrawtransaction, decoderawtransaction, decodescript, gettransaction, and REST endpoints: /rest/tx, /rest/getutxos, /rest/block deprecated the following fields (which are no longer returned in the responses by default): addresses, reqSigs. The -deprecatedrpc=addresses flag must be passed for these fields to be included in the RPC response. This flag/option will be available only for this major release, after which the deprecation will be removed entirely. Note that these fields are attributes of the scriptPubKey object returned in the RPC response. However, in the response of decodescript these fields are top-level attributes, and included again as attributes of the scriptPubKey object. (#20286)

Idealy, we want to support both pre and post v0.22

Difference is in scriptPubKey.address vs scriptPubKey.addresses

"tx": [
{
"txid": "c05480e5da3b3e27126c15357057fd468ae990335d4e6cb10b90b1c4ff957ecc",
"hash": "e942c99a94ea5b4e0727cd4de3797ce637e298e721b528156a7fb0a93382374e",
"version": 1,
"size": 2726,
"vsize": 2645,
"weight": 10577,
"locktime": 0,
"vin": [
	{
		"txid": "90b05668c64e5992d443f417f0943046b2fb2659cab0091fc52ceeb38622c6d7",
		"vout": 5,
		"scriptSig": {
			"asm": "",
			"hex": ""
		},
		"txinwitness": [
			"304402203faac0190481f82bd5c4a30319702f4109d8f5c1c2f10fc1c3699f3c9da86cd802205cd4798fef88548e4abae7ecae3398d060f122b578caff2ffa33c14fef97c56801",
			"0243312f392cf042c823c8a1525065cecdf3724c98984b1172152d563d03605761"
		],
		"sequence": 4294967295
	}
],
"vout": [
{
		"value": 0.0001,
		"n": 60,
		"scriptPubKey": {
			"asm": "0 67d05fedb991533891c1aa6bfc1555b385aa9e4536089c345add556ec2e58403",
			"hex": "002067d05fedb991533891c1aa6bfc1555b385aa9e4536089c345add556ec2e58403",
			"address": "bc1qvlg9lmdej9fn3ywp4f4lc924kwz648j9xcyfcdz6m42kash9sspse36m33",
			"type": "witness_v0_scripthash"
		}
	},
        ...
],
...
}
        "scriptPubKey": {
            "asm": "1 030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc 20434e545250525459000000140001a9e0e85838b5000000174876e800010053b6 2 OP_CHECKMULTISIG",
            "hex": "5121030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc2120434e545250525459000000140001a9e0e85838b5000000174876e800010053b652ae",
            "reqSigs": 1,
            "type": "multisig",
            "addresses": [
                "1FrbMcddiM1v3HMpUqygjZYCamBykWCWao"
            ]
        }