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.
Can you move the duplicate/prevfinding code to AcceptBlockHeader, and have this function just take a CBlockIndex* pointer (which cannot be NULL)? I would prefer it if this function didn't need cs_main.