Rework getblocks handling.
Rework getblocks handling.

This commit reworks the getblocks handling a bit to clean it up and match
the reference implementation handling.  In particular, it adds monitoring
for when peers request the final block advertised from a previous
getblocks message and automatically avertises the latest known block
inventory to trigger the peer to send another getblocks message.

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