Merge pull request #1969 from libgit2/ntk/fix/drop_comment

Cleaning up
util: NetBSD doesn't have qsort_r either
Merge pull request #1970 from ghedo/netbsd_qsort

util: NetBSD doesn't have qsort_r either
Merge pull request #1966 from nickh/patch_content_offsets

Add content offset to git_diff_line
Formatting fix for cred_acquire_cb
libgit2 0.20.0 "anmeldung"

Apologies for the delay. This release is chunky,
but you're probably used to chunky releases by now.

Full changelog follows:

Internal changes
	+ Added support for decomposed Unicode paths in Mac OS X
	+ Added support for junctions in win32
	+ Fixed issues with HTTP redirects in the network stack
	+ Performance improvements (as always)

git2/blame.h
	+ added full support for blame operations

git2/blob.h
	+ added `git_blob_filtered_content` to load blobs in
	memory with their corresponding filters applied

git2/branch.h
	+ added branch iterators as an alternative to the
	callback-based API

git2/buffer.h
	+ exported the git_buf struct to allow binary buffers
	to be passed from/to the library. This simplifies
	several APIs

git2/checkout.h
	+ implemented additional checkout options ('skip unmerged',
	'use ours' and 'use theirs')

git2/clone.h
	+ simplified the clone API
	+ added new `git_clone_into` to clone into an existing
	(empty) repository

git2/commit.h
	+ added APIs to access the raw (uncleaned) text of a commit
	message

git2/common.h
	+ added global options to set the default paths to load
	templates from

git2/config.h
	+ added multivar iterators
	+ added globbing iterator
	+ added `git_config_foreach_match` to perform operations
	on every single var in a config file

git2/diff.h
	+ restructured and simplified the diff API

git2/filter.h
	+ added external APIs to configure and apply custom filters
	to checked out blobs

git2/index.h
	+ `git_index_read` can now force a reload of the index file
	even if it hasn't changed on-disk

git2/indexer.h
	+ improved the streaming indexer APIs

git2/merge.h
	+ added support for merge!

git2/object.h
	+ added helper API to lookup a generic object by path

git2/pack.h
	+ added progress callbacks to the packbuilder

git2/patch.h
	+ added support for patch generation as part of the Diff
	API revamp

git2/pathspec.h
	+ added helper APIs to work with pathspecs and match files
	in the workdir or diffs

git2/push.h
	+ added progress callbacks to push

git2/reflog.h
	+ changed reflog APIs to work on reference names instead of
	the references themselves, so they become less racy

git2/remote.h
	+ added support for setting refspecs on remotes, either at
	creation or on existing ones
	+ simplified the remotes API

git2/revwalk.h
	+ add API to simplify parents during a walk

git2/signature.h
	+ add helper to create a signature with the default values for
	a repository (i.e. the set `user.name` and `user.email` values,
	and the current time)

git2/submodules.h
	+ improve the status detection for submodules

git2/sys/
	+ exported many new internal APIs, such as pluggabe transport
	APIs

-vmg, out
Merge branch 'development'
ssh: add support for ssh-agent authentication
transport: document ssh-agent authentication
Merge pull request #1972 from ghedo/ssh_agent

ssh: add support for ssh-agent authentication
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.
posix: Solaris doesn't have strnlen either