refs: Centralize reference creation logic
refs: Introduce git_reference_create_with_log()
refs: Introduce git_reference_symbolic_create_with_log()
refs: Introduce git_reference_set_target_with_log()
refs: Introduce git_reference_symbolic_set_target_with_log()
refs: adjust to the new reflog API
refdb: add a `message` parameter for appending to the log

This is as yet unused.
reflog: integrate into the ref writing

Whenever a reference is created or updated, we need to write to the
reflog regardless of whether the user gave us a message, so we shouldn't
leave that to the ref frontend, but integrate it into the backend.

This also eliminates the race between ref update and writing to the
reflog, as we protect the reflog with the ref lock.

As an additional benefit, this reflog append on the backend happens by
appending to the file instead of parsing and rewriting it.
reflog: remove git_reflog_append_to()

This was a convenience method for the refs front-end to do the reflog
writing. This is now done in the backend and it has no more reason for
being.
Merge pull request #1983 from ethomson/revert

Bare naked merge and rebase
Reorder var decls in revert test

Oh, MSVC.
Merge pull request #1984 from ethomson/revert_fix

Reorder revert test variable decls
Introduce GIT_DIFF_FIND_BY_CONFIG
Fixed compilation on Windows when using libssh2.
Merge pull request #1988 from mgbowen/fix-libssh2-windows

Fixed compilation on Windows when using libssh2.
Implement GIT_DIFF_FIND_BY_CONFIG
Don't use weird return codes
blame.c: Remove unnecessary error-check and goto

In private function 'load_blob'.
Merge pull request #1989 from palistov/blame-cleanup

blame.c: Remove unnecessary error-check and goto
Clarify default value and behavior