[block_manager] Allow people to change the validator for a block
[various data structures] Reuse validators rather than always creating a new one.
[block] make sure we can change validators
Small work on metadata_checker tests.