windows: Fuck me
Fix mingw cross-compile build
Add some things to precompiled header
Rename git__win32_path fns to git_win32_path
Reintroduce type for UTF8 win32 path conversions
Minor win32 fixes and improvements

This is just a bunch of small fixes that I noticed while looking
at the UTF8 and UTF16 path stuff.  It fixes a slowdown in looking
for an empty directory (not exiting loop asap), makes the dir name
in the git__DIR structure be a GIT_FLEX_ARRAY to save an allocation,
and fixes some slightly odd assumptions in the cl_getenv helper.
Missed one path for path_as_utf8 type
fileops: stat() before open()ing in git_futils_readbuffer_updated()

This reverts refactoring done in 13224ea4aad9a1b3c9cc4c992ceaea9af623e047
that introduces a performance regression for NFS when reading files that
don't exist. open() forces a cache invalidation on NFS, while stat()ing a
file just uses the cache and is very quick.

To give a specific example, say you have a repo with a thousand packed
refs. Before this change, looking up every single one ould incur a thousand
slow open() calls. With this change, it's a thousand fast stat() calls.
Merge pull request #1767 from libgit2/win32-bigger-utf8-buffer

Bigger buffer for utf-8 parsing in win32
Merge pull request #1779 from ben/win32-precompiled-header-speedup

Speed up build under MSVC
Respect GIT_SSL_NO_VERIFY and http.sslVerify
config: don't special-case the multivar iterator

Build it on top of the normal iterator instead, which lets use re-use
a lot of code.
sha1_lookup: do not use the "experimental" lookup mode
sha1_lookup: Hello my name is MSVC and how do I pointer
oid: Helper for old-school hashcmp
Test SSH in travis

Set up the ssh credentials so we are able to talk to localhost and
issue git commands. Move to use a script, as the command list is
getting somewhat long.

While here, delay installing valgrind until we need it, as it and its
dependencies are by far the largest downloads and this allows us to
start compiling (and failing) faster and we only incur this cost when
the test suite runs successfully.
remote: relax the url rules

Accept any value for the remote's url, including an empty string which
we used to reject as invalid configuration.

This is not quite what git does (although it has its own problems with
such configurations) and it makes it harder to fix the issue, by not
letting the user modify it.

As we already need to check for a valid URL when we try to connect to
the network, let that perform the check, as we don't need to do it
anywhere else.
Merge pull request #1782 from libgit2/vmg/no-lookup

Do not use the "experimental" lookup mode
Merge pull request #1781 from brodie/brodie/stat-before-open

fileops: stat() before open()ing in git_futils_readbuffer_updated()
Merge pull request #1774 from libgit2/test-ssh

Test SSH in travis