archive-hardfork-toolbox: polish `convert-chain-to-canonical`.

`--target-block-hash` and `--protocol-version` are now optional: with no flags the command auto-detects the latest hard-fork boundary, defaulting the target to the parent of the latest hard-fork block and the protocol version to that block's own. Adds `--fork-height` as an alternative way to name the target, `--dry-run` to compute and print the change plan without writing, `--json` for machine-readable plan output, and a guard that refuses a conversion whose protocol version matches the current one (which would silently rewrite chain status for no reason).

Internally this adds a change-plan renderer (human-readable table and JSON), SQL for fork-boundary detection, heal/orphan block selection and summary counts, tests covering auto-detect, dry-run and the same-protocol-version fork, and a README documenting the command.
