remote: failing test for rename

When there is a reference in the target namespace, we should overwrite
it. Instead it gets a different name under the current code.
remote: tighten up reference renaming

Tighten up which references we consider for renaming so we don't try to
rename unrelated ones and end up with unexplained references.

If there is a reference on the target namespace, git overwrites it, so
let's do the same.
Update AUTHORS

Add me. :)
Merge pull request #2405 from arthurschreiber/patch-4

Update AUTHORS
Merge pull request #2404 from libgit2/cmn/remote-rename-fixes

Remote rename fixes
remote: remove rename code for anonymous remotes

We don't allow renames of anonymous remotes, so there's no need to
handle them.

A remote is always associated with a repository, so there's no need to
check for that.
remote: make sure the name stays valid on rename

We must make sure that the name pointer remains valid, so make sure to
allocate the new one before freeing the old one and swap them so the
user never sees an invalid pointer.
remote: return problem refspecs instead of using a callback

There is no reason why we need to use a callback here. A string array
fits better with the usage, as this is not an event and we don't need
anything from the user.
remote: failing test for renaming with a symref
remote: handle symrefs when renaming

A symref inside the namespace gets renamed, we should make it point to
the target's new name.

This is for the origin/HEAD -> origin/master type of situations.
remote: don't free the remote on delete

This was a bad idea. Don't free except in the free function.
Win32: Fix failing clone_mirror test
Win32: Fix diff::workdir::submodules test #2361
Merge pull request #2408 from phkelley/win32_test_fixes

Win32 test fixes
Win32: Fix object::cache::threadmania test on x64
React to review feedback
Merge pull request #2409 from phkelley/win32_thread_fixes

Win32: Fix object::cache::threadmania test on x64
Merge pull request #2407 from libgit2/cmn/remote-rename-more

More remote rename fixes
Change SOVERSION at API breaks

Since the SOVERSION doesn't need to follow the library's version and
simply needs to be monotonically increasing whenever we release
something that breaks the ABI, we can set some number and allow multiple
versions of the library to be installed side-by-side.

We start here with the minor version as that's what we release for now,
and it allows to backport this change to earlier versions.
Bump version to 0.21.0

Bump library version to 0.21.0 and SONAME to 21