test: add some unit tests for merkle.cpp
test: add some unit tests for merkle.cpp

following situations are covered:
- empty block
- one Tx
- Merkle root of a block with odd Txs should not change with repeating
last one
- Merkle root is computed with combining Merkle root of left subtree and right subtree
- block witness is Merkle root of a block when setting first Tx
to zero.

Signed-off-by: soroosh-sdi <690f46a2ff9f2182f24201adbd81c716b6a1f2c5@gmail.com>

midnightmagic/bitcoin,anditto/bitcoin,pataquets/namecoin-core,alecalve/bitcoin,lateminer/bitcoin,GroestlCoin/GroestlCoin,domob1812/namecore,litecoin-project/litecoin,EthanHeilman/bitcoin,bitcoinsSG/bitcoin,ajtowns/bitcoin,namecoin/namecore,andreaskern/bitcoin,tjps/bitcoin,vertcoin/vertcoin,qtumproject/qtum,jamesob/bitcoin,n1bor/bitcoin,namecoin/namecore,rnicoll/dogecoin,mitchellcash/bitcoin,yenliangl/bitcoin,n1bor/bitcoin,MeshCollider/bitcoin,andreaskern/bitcoin,nikkitan/bitcoin,rnicoll/bitcoin,jnewbery/bitcoin,kallewoof/bitcoin,AkioNak/bitcoin,mruddy/bitcoin,AkioNak/bitcoin,pstratem/bitcoin,gjhiggins/vcoincore,prusnak/bitcoin,instagibbs/bitcoin,domob1812/namecore,Xekyo/bitcoin,peercoin/peercoin,andreaskern/bitcoin,bitcoin/bitcoin,vertcoin/vertcoin,gjhiggins/vcoincore,JeremyRubin/bitcoin,GroestlCoin/bitcoin,Sjors/bitcoin,yenliangl/bitcoin,rnicoll/bitcoin,sipsorcery/bitcoin,mitchellcash/bitcoin,jonasschnelli/bitcoin,ahmedbodi/vertcoin,ElementsProject/elements,domob1812/namecore,practicalswift/bitcoin,vertcoin/vertcoin,yenliangl/bitcoin,DigitalPandacoin/pandacoin,JeremyRubin/bitcoin,qtumproject/qtum,bitcoinknots/bitcoin,GroestlCoin/GroestlCoin,mitchellcash/bitcoin,instagibbs/bitcoin,Xekyo/bitcoin,peercoin/peercoin,MarcoFalke/bitcoin,fanquake/bitcoin,MeshCollider/bitcoin,bitcoin/bitcoin,wellenreiter01/Feathercoin,tecnovert/particl-core,andreaskern/bitcoin,jtimon/bitcoin,kallewoof/bitcoin,lateminer/bitcoin,domob1812/namecore,GroestlCoin/bitcoin,MarcoFalke/bitcoin,lateminer/bitcoin,jnewbery/bitcoin,JeremyRubin/bitcoin,gjhiggins/vcoincore,lateminer/bitcoin,jambolo/bitcoin,dscotese/bitcoin,gjhiggins/vcoincore,kallewoof/bitcoin,EthanHeilman/bitcoin,namecoin/namecore,gjhiggins/vcoincore,FeatherCoin/Feathercoin,fanquake/bitcoin,pataquets/namecoin-core,midnightmagic/bitcoin,EthanHeilman/bitcoin,DigitalPandacoin/pandacoin,pstratem/bitcoin,ElementsProject/elements,anditto/bitcoin,bitcoinsSG/bitcoin,namecoin/namecoin-core,ahmedbodi/vertcoin,jonasschnelli/bitcoin,MarcoFalke/bitcoin,rnicoll/bitcoin,jlopp/statoshi,rnicoll/dogecoin,pataquets/namecoin-core,monacoinproject/monacoin,dscotese/bitcoin,rnicoll/bitcoin,midnightmagic/bitcoin,vertcoin/vertcoin,apoelstra/bitcoin,alecalve/bitcoin,yenliangl/bitcoin,peercoin/peercoin,Sjors/bitcoin,peercoin/peercoin,mruddy/bitcoin,bitcoinsSG/bitcoin,cdecker/bitcoin,jtimon/bitcoin,domob1812/bitcoin,monacoinproject/monacoin,dscotese/bitcoin,jlopp/statoshi,fujicoin/fujicoin,jonasschnelli/bitcoin,GroestlCoin/GroestlCoin,jnewbery/bitcoin,n1bor/bitcoin,qtumproject/qtum,tjps/bitcoin,wellenreiter01/Feathercoin,yenliangl/bitcoin,MeshCollider/bitcoin,sipsorcery/bitcoin,sstone/bitcoin,jambolo/bitcoin,DigitalPandacoin/pandacoin,domob1812/bitcoin,nikkitan/bitcoin,fanquake/bitcoin,JeremyRubin/bitcoin,qtumproject/qtum,jlopp/statoshi,bitcoinknots/bitcoin,EthanHeilman/bitcoin,anditto/bitcoin,FeatherCoin/Feathercoin,jnewbery/bitcoin,sstone/bitcoin,practicalswift/bitcoin,pataquets/namecoin-core,peercoin/peercoin,tjps/bitcoin,domob1812/bitcoin,fujicoin/fujicoin,DigitalPandacoin/pandacoin,prusnak/bitcoin,fujicoin/fujicoin,particl/particl-core,tecnovert/particl-core,jtimon/bitcoin,pstratem/bitcoin,domob1812/bitcoin,achow101/bitcoin,apoelstra/bitcoin,GroestlCoin/bitcoin,alecalve/bitcoin,apoelstra/bitcoin,bitcoin/bitcoin,rnicoll/dogecoin,tjps/bitcoin,sstone/bitcoin,fujicoin/fujicoin,instagibbs/bitcoin,EthanHeilman/bitcoin,litecoin-project/litecoin,namecoin/namecore,particl/particl-core,jonasschnelli/bitcoin,MarcoFalke/bitcoin,nikkitan/bitcoin,achow101/bitcoin,wellenreiter01/Feathercoin,jamesob/bitcoin,Sjors/bitcoin,cdecker/bitcoin,ahmedbodi/vertcoin,peercoin/peercoin,DigitalPandacoin/pandacoin,sipsorcery/bitcoin,instagibbs/bitcoin,Xekyo/bitcoin,tecnovert/particl-core,kallewoof/bitcoin,jambolo/bitcoin,cdecker/bitcoin,mruddy/bitcoin,ajtowns/bitcoin,alecalve/bitcoin,monacoinproject/monacoin,mitchellcash/bitcoin,fanquake/bitcoin,andreaskern/bitcoin,rnicoll/bitcoin,FeatherCoin/Feathercoin,kallewoof/bitcoin,ElementsProject/elements,AkioNak/bitcoin,bitcoinsSG/bitcoin,Sjors/bitcoin,FeatherCoin/Feathercoin,n1bor/bitcoin,anditto/bitcoin,namecoin/namecoin-core,practicalswift/bitcoin,lateminer/bitcoin,andreaskern/bitcoin,FeatherCoin/Feathercoin,monacoinproject/monacoin,mruddy/bitcoin,MarcoFalke/bitcoin,bitcoin/bitcoin,MarcoFalke/bitcoin,midnightmagic/bitcoin,AkioNak/bitcoin,tecnovert/particl-core,alecalve/bitcoin,litecoin-project/litecoin,dscotese/bitcoin,DigitalPandacoin/pandacoin,mm-s/bitcoin,sstone/bitcoin,namecoin/namecoin-core,apoelstra/bitcoin,n1bor/bitcoin,midnightmagic/bitcoin,ElementsProject/elements,Xekyo/bitcoin,kallewoof/bitcoin,GroestlCoin/bitcoin,Xekyo/bitcoin,cdecker/bitcoin,GroestlCoin/GroestlCoin,pstratem/bitcoin,anditto/bitcoin,alecalve/bitcoin,lateminer/bitcoin,jtimon/bitcoin,namecoin/namecore,ajtowns/bitcoin,fujicoin/fujicoin,mruddy/bitcoin,GroestlCoin/bitcoin,jonasschnelli/bitcoin,Sjors/bitcoin,bitcoinsSG/bitcoin,tecnovert/particl-core,domob1812/bitcoin,nikkitan/bitcoin,achow101/bitcoin,anditto/bitcoin,litecoin-project/litecoin,jtimon/bitcoin,achow101/bitcoin,MeshCollider/bitcoin,qtumproject/qtum,prusnak/bitcoin,gjhiggins/vcoincore,particl/particl-core,FeatherCoin/Feathercoin,JeremyRubin/bitcoin,ajtowns/bitcoin,mm-s/bitcoin,wellenreiter01/Feathercoin,jlopp/statoshi,ajtowns/bitcoin,practicalswift/bitcoin,Xekyo/bitcoin,instagibbs/bitcoin,n1bor/bitcoin,mm-s/bitcoin,mitchellcash/bitcoin,particl/particl-core,apoelstra/bitcoin,wellenreiter01/Feathercoin,prusnak/bitcoin,fanquake/bitcoin,yenliangl/bitcoin,JeremyRubin/bitcoin,jnewbery/bitcoin,GroestlCoin/bitcoin,namecoin/namecore,vertcoin/vertcoin,sipsorcery/bitcoin,jlopp/statoshi,sstone/bitcoin,jamesob/bitcoin,monacoinproject/monacoin,ahmedbodi/vertcoin,EthanHeilman/bitcoin,dscotese/bitcoin,tjps/bitcoin,dscotese/bitcoin,GroestlCoin/GroestlCoin,mm-s/bitcoin,prusnak/bitcoin,jambolo/bitcoin,domob1812/namecore,bitcoin/bitcoin,sipsorcery/bitcoin,bitcoin/bitcoin,cdecker/bitcoin,wellenreiter01/Feathercoin,pataquets/namecoin-core,jamesob/bitcoin,tecnovert/particl-core,practicalswift/bitcoin,MeshCollider/bitcoin,domob1812/namecore,instagibbs/bitcoin,ahmedbodi/vertcoin,rnicoll/dogecoin,jlopp/statoshi,namecoin/namecoin-core,ElementsProject/elements,vertcoin/vertcoin,jambolo/bitcoin,namecoin/namecoin-core,sipsorcery/bitcoin,tjps/bitcoin,achow101/bitcoin,sstone/bitcoin,mitchellcash/bitcoin,midnightmagic/bitcoin,rnicoll/dogecoin,particl/particl-core,jamesob/bitcoin,mruddy/bitcoin,nikkitan/bitcoin,GroestlCoin/GroestlCoin,bitcoinknots/bitcoin,prusnak/bitcoin,ElementsProject/elements,monacoinproject/monacoin,qtumproject/qtum,namecoin/namecoin-core,jamesob/bitcoin,bitcoinknots/bitcoin,pstratem/bitcoin,fanquake/bitcoin,ahmedbodi/vertcoin,cdecker/bitcoin,pataquets/namecoin-core,domob1812/bitcoin,MeshCollider/bitcoin,jambolo/bitcoin,mm-s/bitcoin,AkioNak/bitcoin,practicalswift/bitcoin,rnicoll/bitcoin,bitcoinsSG/bitcoin,fujicoin/fujicoin,litecoin-project/litecoin,AkioNak/bitcoin,particl/particl-core,qtumproject/qtum,jtimon/bitcoin,pstratem/bitcoin,ajtowns/bitcoin,apoelstra/bitcoin,litecoin-project/litecoin,achow101/bitcoin,mm-s/bitcoin,bitcoinknots/bitcoin,nikkitan/bitcoin