Support building and running in Cygwin (Windows)

This branch of NitroHack can now be compiled under and played in Cygwin.
The steps to do so off the top of my head (proper instructions for the
readme to come):

 1. Install/update Cygwin with the following packages:
    - gcc4 (gcc may also work)
    - cmake
    - make
    - flex
    - bison
    - libncursesw-devel
 2. Get and install Jansson:
    - get source tarball from www.digip.org/jansson/
    - extract to C:\cygwin\home\yourname\
    - './configure', 'make' and 'make install'
 3. Download game source, build and install like on Linux.

Built this way, the game requires Cygwin to run, which is rather big
(120~ MB to download, 500~ MB when installed) but is still much smaller
and more convenient for Windows players than running Linux in a VM or
dual-booting.

On the upside, the game runs under Cygwin's console (mintty) instead of
Windows' (cmd.exe), which means actual Unicode support (read: special
map characters), a choice of any font instead of just two (I recommend
Liberation Mono), no resizing restrictions, less finicky copy-and-paste
and more options like a choice of cursor shape.

There are a handful of warnings that Cygwin's gcc raises when compiling
the game like this, none of them serious as far as I've play-tested;
I'll address them in commits to come.

Implementation/porting notes:

 - Minimum CMake version has been bumped up from 2.6 to 2.8.4, which
   under Cygwin sets WIN32 to FALSE in the CMake files instead of TRUE
   (not to be confused with the WIN32/UNIX source symbols seen by cpp).
   This makes sense given that Cygwin's API mimics Linux's much more
   than Windows'.

 - -fpic and -fvisibility=hidden apparently aren't needed when building
   DLLs.  Go figure.

 - Cygwin's string.h already defines strcmpi() and strncmpi(), so
   NitroHack doesn't need to stomp over it with its own definitions.
   Running the following command with empty foo.h was handy:

     cpp -dM foo.h | grep -i cygwin

   This listed cpp symbols defined by Cygwin that let me special-case
   these extra definitions out.

 - The definition of 'noreturn' in makedefs.c caused all sorts of weird
   errors deep in Cygwin's stdlib.h.  Using gcc's -save-temps flag and
   peeking at cpp's output to makedefs.i, I discovered that stdlib.h was
   defining something like:

     #define _NORETURN __attribute__((noreturn))

   leading to a bogus expansion like this:

     _NORETURN -> __attribute__((__attribute__((noreturn))))

   leading to completely unhelpful syntax error messages around
   '__attribute__'.  Renaming 'noreturn' to 'NORETURN' in makedefs.c
   completely fixes this.

 - Jansson as compiled and installed above goes into Cygwin's
   /usr/local.  Cygwin's gcc package searches there by default, but gcc4
   does not, so a little extra path help is needed in the latter case.