Fix pointer -> integer casts on IL32P64 systems

This commit touches regcomp.c from Gnulib,
was fixed upstream in 3a4836d1.

This commit also touches poll.c from Gnulib,
was fixed upstream in d295f6c5.

This commit also touches regex_internal.h from Gnulib,
was fixed upstream in 8335a4d6.

Wrt ShellExecute in winansi.c, quoting [1]:

  MSDN says you can cast the result to an integer and compare the result
  against 32... You could cast in the other direction, comparing the return
  value against (HINSTANCE)32... Or you could cast the result to an INT_PTR
  and compare the result against 32.

We use the third option: cast HINSTANCE to intptr_t.

[1]: http://blogs.msdn.com/b/oldnewthing/archive/2006/11/08/1035971.aspx

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
git-compat-util.h: fix integer overflow on IL32P64 systems

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
MINGW: config.mak.uname: auto-detect MinGW build from compiler

When crosscompiling, one cannot rely on `uname` from host system.

Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
MinGW-w64: Work around bug in MinGW-w64's winuser.h

This allows contributors to compile 64-bit Windows builds of Git without
forcing them to use an unstable version of MinGW-w64.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>