windows: tweak Makefile.mingw for easier usage

Default CC to `gcc` instead of `cc` because at least on the mingw
installation I had there was no `cc` executable. This avoids having
to type `CC=gcc` in all the `make` commands.

Also append to `CFLAGS` instead of defining if not previously defined.
These flags are required to build libuv, so they should not be
overridden if other extra CFLAGS are supplied via the command
line as well.
windows: fix mingw build

On older mingw installations, DEVICE_TYPE isn't defined. This was
redefined in windows.h, but it was done after it was already attempted
to be used. This moves the #define for DEVICE_TYPE above the usage of
it in windows.h to prevent compilation failures.
unix: req queue must be empty when destroying loop

Assert that the request queue is empty when destroying the event loop.

Should catch errors where people call uv_loop_delete() when there are
still in-progress work requests (for example.)
unix: move loop functions from core.c to loop.c

Move uv_default_loop(), uv_loop_new() and uv_loop_delete() to loop.c.
darwin: remove CoreFoundation dependency

Load the required symbols at run-time rather than linking against the
CoreFoundation (and CoreServices and ApplicationServices) frameworks
at build time.

Should make integration easier for people that bundle libuv with their
own projects because they no longer have to replicate magic -framework
incantations in their top-level build system.
darwin: fix 10.6 build error in fsevents.c

Work around an 'initializer element is not constant' build error in
src/unix/fsevents.c by turning the const int flags into #defines.

Only an issue on OS X 10.6 due to the old compiler it uses.

Fixes #908.
windows: make uv_shutdown() for write-only pipes work

A couple of issues prevented uv_shutdown() from working correctly with
write-only pipes.

  * The pipe handle wasn't opened with the right permissions, so an
    attempt to probe the state of the write buffer would fail with
    ERROR_ACCESS_DENIED.

  * The pipe flags for child process stdio pipes were always set to
    UV_HANDLE_READABLE and UV_HANDLE_WRITABLE, even in cases where it
    was actually half-duplex.

  * There was no code path that lead to closing the pipe handle if the
    pipe was write-only.
2013.08.30, Version 0.11.11 (Unstable)

Changes since version 0.11.10:

* unix, windows: add thread-local storage API (Ben Noordhuis)

* linux: don't turn on SO_REUSEPORT socket option (Ben Noordhuis)

* darwin: fix 10.6 build error in fsevents.c (Ben Noordhuis)

* windows: make uv_shutdown() for write-only pipes work (Bert Belder)

* include: update uv_udp_open() / uv_udp_bind() docs (Ben Noordhuis)

* unix: req queue must be empty when destroying loop (Ben Noordhuis)

* unix: move loop functions from core.c to loop.c (Ben Noordhuis)

* darwin: remove CoreFoundation dependency (Ben Noordhuis)

* windows: make autotools build system work with mingw (Keno Fischer)

* windows: fix mingw build (Alex Crichton)

* windows: tweak Makefile.mingw for easier usage (Alex Crichton)

* build: remove _GNU_SOURCE macro definition (Ben Noordhuis)
Now working on v0.11.12