Skip blame libgit2 test if not in libgit2 repo

One blame test replies on being run from within the libgit2
repository to leverage having a longer history to play with, but
some bundled versions of libgit2 don't have the whole libgit2
history.  This just skips that test if the repository can't be
opened.
Add warning when skipping blame test
Clar: skip tests
remote: write tests for cloning from an empty repo

Cloning from an empty repo must set master's upstream to origin's
master, even if neither of them exist.

Fetching from a non-empty origin must then mark the master branch
for-merge. This currently fails.
remote: mark branch for-merge even if we're unborn

When the current branch is unborn, git will still mark the current
branch's upstream for-merge if there is an upstream configuration. The
only non-constrived case is cloning from an empty repository which then
gains history. origin's master should be marked for-merge.

In order to do this, we cannot use the high-level wrappers that expect a
reference, as we may not have one. Move over to the internal ones that
expect a reference name, which we do have.
Merge pull request #2239 from libgit2/vmg/clar-skip-test

Skip tests on Clar
Merge pull request #2238 from libgit2/cmn/upstream-for-unborn

Handle an upstream branch for an unborn one