Support for BIP 23 block proposal

This would aide greatly in ensuring miners aren't messing up blocks, without the expense of losing 50 BTC.
What is the reason to pass a `CBlockIndex* const &` instead of just a `const CBlockIndex *` for `pindexPrev`? (same for `TestBlockValidity` below)