git_branch_set_upstream with local branches

Currently git_branch_set_upstream when passed a local branch
creates invalid configuration, for ex. if we setup branch
'tracking_master' to track local 'master' libgit2 generates
the following config

```
[branch "track_master"]
  remote = .
  merge = .refs/heads/track_master
```

The merge value is invalid and calling git_branch_upstream on
'tracking_master' results in invalid reference error.

It should do:

```
[branch "track_master"]
  remote = .
  merge = refs/heads/master
```
Add git_commit_owner to the public interface

Just like git_tree_owner, etc.
Merge pull request #1553 from jdavid/git_commit_owner

Add git_commit_owner to the public interface
Fixed qsort_r() problem when targeting AmigaOS.

We fall back to the libgit2-provided insert sort as done for other
platforms.
Merge pull request #1554 from sba1/sort-amiga-fix

Fixed qsort_r() problem when targeting AmigaOS.
Merge pull request #1551 from nvloff/set_upstream_local_branch

fix git_branch_set_upstream for local branches