Fix snapshot synchronizaiton

1. change TruncatedHash to Hash, because we never use Hash
2. finish snapshot synchronization. Listeners joining the network now download a snapshot, download the quorum, download all the blocks, all while listening for new blocks. Upon completion of all this, the quorum is fast-forwarded to the current block and synchronization is complete.