Add 'invalidateblock' and 'reconsiderblock' RPC commands.

These can be used for testing reorganizations or for manual intervention in case of
chain forks.
Delay writing block indexes in invalidate/reconsider
[REST] make selection of output-format mandatory, support dot url syntax

1. Remove the default format (binary) because `rest/block/<hash>/Hex` would end up delivering binary data.
2. List available formats when chosen format was not found (reduces need for documentation)
3. Change url syntax to dot extension like format chosing (like `rest/tx/<hash>.json`
Use deterministically generated script tests

Now that signing is deterministic, we can require exact correspondence between the
automatically generated tests and the ones read from JSON. Do this, and update
the tests to those deterministic versions. Note that some flag changes weren't
correctly applied before.
Move CHECKMULTISIG order tests out of automatically generated block
Merge pull request #5376

8a5c951 [REST] make selection of output-format mandatory, support dot url syntax (Jonas Schnelli)
Fix rest.py test after #5376
Test resurrecting memory pool transactions during chain re-org

Builds on #5316.
Merge pull request #5369

b2d0162 Test resurrecting memory pool transactions during chain re-org (Gavin Andresen)
3dd8ed7 Delay writing block indexes in invalidate/reconsider (Pieter Wuille)
798faec Add 'invalidateblock' and 'reconsiderblock' RPC commands. (Pieter Wuille)
Merge pull request #5401

362001c Move CHECKMULTISIG order tests out of automatically generated block (Pieter Wuille)
f67a9ce Use deterministically generated script tests (Pieter Wuille)