Fix segfault when calling git_config_get_* functions when a config fails to load

Reinitialize the result code of get_entry() to GIT_ENOTFOUND
merge_file should use more aggressive levels

The default merge_file level was XDL_MERGE_MINIMAL, which will
produce conflicts where there should not be in the case where
both sides were changed identically.  Change the defaults to be
more aggressive (XDL_MERGE_ZEALOUS) which will more aggressively
compress non-conflicts.  This matches git.git's defaults.

Increase testing around reverting a previously reverted commit to
illustrate this problem.
Don't try to merge binary files
Introduce diff3 mode for checking out conflicts
Load merge.conflictstyle setting from config