Find libssh2 via pkg-config

We don't really need our own module to find libssh2. Using pkg-config
lets the standard tool do the work for us and let us fit more naturally
in the workflow as we respect the pkg-config search paths.
Make the OpenSSL locking function warnings more severe

Our git_openssl_set_locking() would ideally not exist. Make it clearer
that we provide it as a last resort and you should prefer anything else.
Add the OpenSSL  changes to the CHANGELOG

It seems these were forgotten when initially splitting this up.
Mention the init function in the README

This fixes #2731.
local: add failing test for sideband information

We do not currently generate any messages when we're counting the
objects, as might be expected from a local upload-pack. Assert that we
do call the function when working.
local: send 'counting objects' output

Pretend we have a git process at the other end by creating a similar
progress output when inserting objects into the packbuilder.
Fix public header on sys/refs.h

GIT_BEGIN/END_DECL were missing from sys/refs.h and preventing
compilation with g++ as the symbol were mangled.
COM0 is a valid path, although Windows Explorer does not allow to create this
Add more Windows reserved filenames
Merge pull request #2768 from dprofeta/fix/c++-refs

Fix public header on sys/refs.h
Merge pull request #2767 from linquize/winpath

More Windows Path checking
Merge pull request #2763 from libgit2/cmn/local-proto-progress

Show progress output on fetch for the local transport
Merge pull request #2760 from libgit2/cmn/init-readme

Mention the init function in the README
Merge pull request #2759 from libgit2/cmn/openssl-sys

Make OpenSSL locking warnings more severe
Merge pull request #2745 from libgit2/cmn/pkg-config-ssh

Find libssh2 via pkg-config
cmake: include FindPkgConfig for windows

Apparently FindPkgConfig is not included by default on VS builds,
only Unix and Unix-like (mingw) builds.
Merge pull request #2773 from ethomson/findpkgconfig

cmake: include FindPkgConfig for windows
submodule init should resolve relative url paths

Submodule init should handle relative paths in .gitmodules files
and resolve these urls when updating the git config file.
Introduce a convenience function for submodule update

This introduces the functionality of submodule update in
'git_submodule_do_update'. The existing 'git_submodule_update' function is
renamed to 'git_submodule_update_strategy'. The 'git_submodule_update'
function now refers to functionality similar to `git submodule update`,
while `git_submodule_update_strategy` is used to get the configured value
of submodule.<name>.update.