* process forensics
* Found common signers at same round for forensics
* find attackers
* add test for forensics
* run setCommittedQCs after processForensics
* clean up the pool old round
* add unit test to cover the vote key format
* add gapNumber to the vote pool key
* fix race condition in pool
* remove verify gap number in vote handler
* typo and checkYourturnWithinFinalisedMasternodes func name to yourturn
* remove redundant code from verifyQC
* Verify QC to optionally pass parent header. This is used to help verifyHeaders
* move difficulty into its own file
* verify header including validator
* re-structure v1 v2 tests
* remove unused test function
* add test to check coinbase and validator address matches
* refactor engine v2 to group private functions into same file