Add optional strict-object-checking on output objects

Limited use really, as the objects we output are just fine - we need
to verify the incoming ones which appear to kill git-filter-branch!

For instance in the Linux kernel:

commit af25e94d4dcfb9608846242fabdd4e6014e5c9f0
Author:  <>
Date:   Fri Jul 1 23:27:00 2005 -0700

    [IA64] Make ia64 die() preempt safe

    Signed-off-by: Keith Owens <kaos@sgi.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>

ram disk:
$ time git filter-branch --index-filter 'git rm --cached --ignore-unmatch CREDITS' --prune-empty --tag-name-filter cat -- --all

Rewrite af25e94d4dcfb9608846242fabdd4e6014e5c9f0 (4198/343296)rm 'CREDITS'
fatal: empty ident  <> not allowed
could not write rewritten commit

real	11m18.753s