git-mktree: introduce the --strict option

So far, `git mktree` performs rudimentary checks on the input, but we
should really perform deeper checks lest we introduce invalid tree
objects into the repository. With `--strict`, we now call the fsck
machinery to validate the tree object before writing.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add tests for git-mktree validation

This test verifies that git-mktree refuses to write a tree object that
references invalid file names.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git hash-object: introduce the --strict option

With the new option, the fsck machinery is used to validate the hashed
object.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a test for hash-object --strict

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