Enforce validation with `git replace --edit`

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
fsck: respect parent count only of parsed commits

Before a commit was parsed, we can be pretty certain that the commit
reports no parent at all, always. So don't use it for verifying the
parent count.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Verify that `git replace --edit` validates before replacing

It makes little sense to allow the user to replace objects with
bogus objects...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>