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.
`pindex->nStatus |= BLOCK_FAILED_VALID;` was removed here - verified that it still happens:

- This call to `state.DoS` (and the one below) sets `state.mode = MODE_INVALID` and `state.corruptionPossible = false`
- After return in `AcceptBlock`, where this code comes from, the check `state.IsInvalid() && !state.CorruptionPossible()` is made, in which case `pindex->nStatus |= BLOCK_FAILED_VALID`