Check block header when accepting headers from peers.

Actually check block headers received from peers.  If a peer sends headers with invalid PoW, they were accepted and added to the disk block index previously.  This would then lead to a failure in checking the PoW
during the next startup while loading the block index.

This is a better version of https://github.com/bitcoin/bitcoin/pull/5269.
I think it's incorrect to call this one redundant. It's the other one that is...