netsync/manager: add syncPeer stall detector
netsync/manager: add syncPeer stall detector

Adds stall detection when no blocks have been received from the sync
peer for at least 3 minutes.

The change backports parts of https://github.com/gcash/bchd/pull/105,
though has different behavior, such as:
 - Rotating the sync peer at tip.
 - Only disconnecting the sync peer if they're height exceeds our own.
   Since we will instead rotate the sync peer at tip, this prevents us
   from disconnecting good peers while waiting for new blocks.
 - Not resetting the progress time when blocks are submitted via rpc.

davecgh/btcd,ppcsuite/ppcd,dajohi/btcd,btcsuite/btcd,dajohi/btcd,davecgh/btcd,ltcsuite/ltcd,btcsuite/btcd,ppcsuite/ppcd,tb00/btcd,tb00/btcd,dajohi/btcd,ltcsuite/ltcd