title: git_merge does not respect the default merge driver configuration setting when checking out conflicted binary files
body: <p>This is reproducible with commit on master 36bfc27a45ac34e8425271c9d3c79ce62564e195.</p>
  
  <p>Consider the following test point, taken from merge/driver.c. I've added the final assertion cl_assert_equal_file, which fails because conflict markers have been inserted into conflicting.txt:</p>
  
  <pre><code>static void merge_branch(void)
  {
      git_oid their_id;
      git_annotated_commit *their_head;
  
      cl_git_pass(git_oid_fromstr(&amp;their_id, BRANCH_ID));
      cl_git_pass(git_annotated_commit_lookup(&amp;their_head, repo, &amp;their_id));
  
      cl_git_pass(git_merge(repo, (const git_annotated_commit **)&amp;their_head,
          1, NULL, NULL));
  
      git_annotated_commit_free(their_head);
  }
  
  void test_merge_driver__honors_builtin_mergedefault_check_no_conflict_markers(void)
  {
      const git_index_entry *ancestor, *ours, *theirs;
  
      cl_repo_set_string(repo, "merge.default", "binary");
      merge_branch();
  
      cl_git_pass(git_index_conflict_get(&amp;ancestor, &amp;ours, &amp;theirs,
          repo_index, "automergeable.txt"));
  
      const char *expected = "this file is changed in master and branch\n";
      cl_assert_equal_file(expected, strlen(expected),
          TEST_REPO_PATH "/conflicting.txt");
  }
  </code></pre>
  
  <p>Command line git doesn't try to actually resolve the contents of these files because the default merge driver is binary. I can't see how to get libgit2 to also respect this via git_merge_options and git_checkout_options.</p>
  
  <p>Looking through the source code of libgit2, it looks like either git_merge_file_from_index should be checking config settings and attributes (too low level?) or checkout_create_conflicts should be using the git_merge_driver.</p>
  
  <p>Is this a bug and/or something I can work around?</p>