Add support for --author flag in example log implementation
Add --committer option, and break out helper function
Add support for --grep
Remove simple --author, --committer, and --grep from PROJECTS
clone: perform a "local clone" when given a local path

When git is given such a path, it will perform a "local clone",
bypassing the git-aware protocol and simply copying over all objects
that exist in the source.

Copy this behaviour when given a local path.
clone: store the realpath when given a relative one

A call like git_clone("./foo", "./foo1") writes origin's url as './foo',
which makes it unusable, as they're relative to different things.

Go with git's behaviour and store the realpath as the url.
clone: add flags to override whether to perform a local clone
clone: add flag not to link
fileops: allow linking files when copying directory structures

When passed the LINK_FILES flag, the recursive copy will hardlink files
instead of copying them.
clone: allow for linking in local clone

If requested, git_clone_local_into() will try to link the object files
instead of copying them.

This only works on non-Windows (since it doesn't have this) when both
are on the same filesystem (which are unix semantics).
examples/log.c: invert filtering impl and conditional
clone: more explicit local tests

Assert the exact amount of links we expect. While there, check that a
plain git_clone() automatically chooses to link.
Merge pull request #2011 from libgit2/cmn/clone-local

Local clone
Merge pull request #2381 from ecoffey/example_log_author_filter

Add support for --author flag in example log implementation
config: initialize the error

The error would be uninitialized if we take a snapshot of a config with
no backends.
Refs: Fix some issue when core.precomposeunicode = true.

This fixes two issues I found when core.precomposeunicode is enabled:

* When creating a reference with a NFD string, the returned
  git_reference would return this NFD string as the reference’s
  name. But when looking up the reference later, the name would
  then be returned as NFC string.
* Renaming a reference would not honor the core.precomposeunicode and
  apply no normalization to the new reference name.
Refs: Introduce `git_refname_t`.
Refs: Add a unicode test for git_branch_move.

This tests that decomposed branch names are correctly precomposed when
passed to `git_branch_move` and `core.precomposeunicode` is enabled.
Refs: Extend unicode test for branch creation.

This adds another assertion to ensure that the reference name inside
the git_reference struct returned by `git_branch_create` is returned as
precomposed if `core.precomposeunicode` is enabled.
Merge pull request #2358 from arthurschreiber/arthur/normalize-ref-names-on-creation

Respect core.precomposeunicode = true in more cases.