Remove races on chain.
Remove races on chain.

Chain is not concurrency safe, so we move the chainNotifySink handling
into the main blockmanager goroutine. Due to a possible deadlock if the
buffer is filled this still has to be a single channel that isn't linked
to the other ones. There is a possible starvation issue where the main
msgChan gets selected more often than the  notification sink, but until
chain is concurrency safe this is rather unavoidable.

stevenroose/btcd,Roasbeef/btcd,toddfries/btcd,cjepson/btcd,mathiasrw/btcd,dajohi/btcd,btcsuite/btcd,jcmincke/dcrd,davecgh/btcd,ppcsuite/ppcd,soapboxsys/ombfullnode,dan-da/btcd,danoctavian/btcd,Dirbaio/btcd,jcmincke/dcrd,ltcsuite/ltcd,jrick/btcd,BitGo/prova,jongillham/btcd,aakselrod/btcd,btcsuite/btcd,Cleawing/btcd,wallclockbuilder/btcd,sysbot/btcd,CryptocurrencyCabal/htcd,DanielKrawisz/btcd,Evil-Coin/Evil,jongillham/btcd,hectorj/btcd,Evil-Coin/Evil,cqswxj2013/btcd,adiabat/btcd,ppcsuite/ppcd,pkothbauer/btcd,ppcsuite/ppcd-old,1d4Nf6/btcd,qchain/btcd,ppcsuite/ppcd-old,jimmysong/btcd,toddfries/btcd,DanielKrawisz/btcd,Dirbaio/btcd,wallclockbuilder/btcd,jrick/dcrd,jrick/dcrd,cjepson/btcd,btcsuitereleases/btcd,Roasbeef/btcd,adiabat/btcd,Cleawing/btcd,dajohi/btcd,hectorj/btcd,jimmysong/btcd,soapboxsys/ombfullnode,ltcsuite/ltcd,runeaune/btcd,jrick/btcd,decred/dcrd,sysbot/btcd,BitGo/prova,aakselrod/btcd,davecgh/btcd,jcmincke/dcrd,danoctavian/btcd,decred/dcrd,btcsuitereleases/btcd,FactomProject/btcd,tb00/btcd,pkothbauer/btcd,1d4Nf6/btcd,tb00/btcd,runeaune/btcd,Dirbaio/btcd,mathiasrw/btcd,dajohi/btcd,Stash-Crypto/btcd,Stash-Crypto/btcd,glv2/ppcd,dan-da/btcd,stevenroose/btcd,cqswxj2013/btcd,jrick/btcd,qchain/btcd,CryptocurrencyCabal/htcd,glv2/ppcd,FactomProject/btcd