Split UTF-16 and UTF-8 buffer sizes for win32

Also fixed up call-sites to use the correct buffer sizes, especially
when converting to utf-8.
Add status test for long paths
Don't use win32-only macro in test code
Add long-file-name branch to test repo
Add checkout test for long file name
Add typedefs for win32 utf-8 and utf-16 buffers

...and normalize the signatures of the two conversion functions.
Rename git_win_str_utf* to git_win32_path_utf*
Discriminate path-specific and general UTF-X conversions
Fix 64-bit MSVC warnings
Make utf-8 source strings unlimited
windows: Path conversion with better semantics
windows: Missing renames.
windows: Require order
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