gitcfg: add a built-in config reader

We may be able to use this to avoid calling "git config".  This code is
not enabled by default, but it was useful while debugging win32 unicode
issues.

It might be worth using it if we find that it improves startup time.

Signed-off-by: David Aguilar <davvid@gmail.com>
compat: add PY2 and WIN32 symbols

Related-to: #302

Signed-off-by: David Aguilar <davvid@gmail.com>
core: use the Windows unicode API when accessing paths

win32 requires unicode strings to properly work with file paths.

Add a mkpath() helper function that transforms its arguments into bytes
for UNIX and unicode for Windows.

Use mkpath() in all of the core wrapper functions.

Related-to: #302

Signed-off-by: David Aguilar <davvid@gmail.com>
win32: support launching git-cola from non-ascii paths

Adjust the startup scripts so that byte strings are used on python2 when
concatenating paths.  This avoids unicode decode errors and ensures that
we find the correct paths on Windows when doing the sys.path setup.

Related-to: #302
Reported-by: Ｖ字龍(Vdragon) <pika1021@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>
Merge branch 'win32/unicode-source-tree'

* win32/unicode-source-tree:
  win32: support launching git-cola from non-ascii paths
  core: use the Windows unicode API when accessing paths
  compat: add PY2 and WIN32 symbols
  gitcfg: add a built-in config reader

Closes #302

Signed-off-by: David Aguilar <davvid@gmail.com>