unix: guarantee write queue cb execution order in streams

The problem was that the canceled write callbacks
were being called before the already written callbacks, even
though they were queued after them.
img: add logo files
doc: add logo image to README
aix: improve AIX compatibility
windows: return bind error immediately when implicitly binding

If a TCP handle is bound automatically when calling uv_listen or
uv_connect, there is a remote possibility that it fails, return
the error if so.
doc: update link to pyuv in README
windows: don't use atexit for cleaning up the threadpool

If libuv is loaded as a DLL and is later unloaded deadlocks can happen
when running atexit handlers, so we can't use synchronization
priomitives or join threads there.

For reference see https://github.com/saghul/pyuv/issues/171
windows: destroy work queue elements when colsing a loop

Destroy the async handle used to notify about work being done, and the
mutex used to protect each loop's work queue.

Closes #1375
unix, windows: add uv_fs_mkdtemp
build: handle platforms without multiprocessing.synchronize
windows: change GENERIC_ALL to GENERIC_WRITE in fs__create_junction

Fixes #1385

See ReactOS's mklink implementation and
http://stackoverflow.com/a/10508724
windows: relay TCP bind errors via ipc

This is the libuv side of the fix for Node's cluster module on Windows.
https://github.com/joyent/node/issues/7691

Windows and Unix return certain socket errors (i.e. EADDRINUSE) at
different times: bind on Windows, and listen on Unix.
In an effort to hide this difference, libuv on Windows stores such
errors in the bind_error field of uv_tcp_t, to defer raising it at
listen time.
This worked fine except for the case in which a socket is shared in
a Node cluster and a bind error occurs.

A previous attempt to fix this (
https://github.com/joyent/libuv/commit/d1e6be1460f555a1f8a4063d7642696aa7238769
https://github.com/joyent/node/commit/3da36fe00e5d85414031ae812e473f16629d8645
) was flawed becaused in an attempt to relay the error at the JS level
it caused the master to start accepting connections.

With this new approach, libuv itself is relaying the bind errors,
providing for a uniform behavior of uv_tcp_listen.
2014.07.32, Version 0.11.27 (Unstable)

Changes since version 0.11.26:

* unix, windows: use the same threadpool implementation (Saúl Ibarra
  Corretgé)

* unix: use struct sockaddr_storage for target UDP addr (Saúl Ibarra
  Corretgé)

* doc: add documentation to uv_udp_start_recv (Andrius Bentkus)

* common: use common uv__count_bufs code (Andrius Bentkus)

* unix, win: add send_queue_size and send_queue_count to uv_udp_t
  (Andrius Bentkus)

* unix, win: add uv_udp_try_send (Andrius Bentkus)

* unix: return UV_EAGAIN if uv_try_write cannot write any data (Saúl
  Ibarra Corretgé)

* windows: fix compatibility with cygwin pipes (Jameson Nash)

* windows: count queued bytes even if request completed immediately
  (Saúl Ibarra Corretgé)

* windows: disable CRT debug handler on MinGW32 (Saúl Ibarra Corretgé)

* windows: map ERROR_INVALID_DRIVE to UV_ENOENT (Saúl Ibarra Corretgé)

* unix: try to write immediately in uv_udp_send (Saúl Ibarra Corretgé)

* unix: remove incorrect assert (Saúl Ibarra Corretgé)

* openbsd: avoid requiring privileges for uv_resident_set_memory (Aaron
  Bieber)

* unix: guarantee write queue cb execution order in streams (Andrius
  Bentkus)

* img: add logo files (Saúl Ibarra Corretgé)

* aix: improve AIX compatibility (Andrew Low)

* windows: return bind error immediately when implicitly binding (Saúl
  Ibarra Corretgé)

* windows: don't use atexit for cleaning up the threadpool (Saúl Ibarra
  Corretgé)

* windows: destroy work queue elements when colsing a loop (Saúl Ibarra
  Corretgé)

* unix, windows: add uv_fs_mkdtemp (Pavel Platto)

* build: handle platforms without multiprocessing.synchronize (Saúl
  Ibarra Corretgé)

* windows: change GENERIC_ALL to GENERIC_WRITE in fs__create_junction
  (Tony Kelman)

* windows: relay TCP bind errors via ipc (Alexis Campailla)
Now working on v0.11.28
unix, windows: const-ify handle in uv_udp_getsockname
windows: use UV_ECANCELED for aborted TCP writes

For consistency with Unix
windows: add more required environment variables

Adds more of the undocumented-but-required environment variables for uv_spawn
windows: sort environment variables before calling CreateProcess
unix, windows: move uv_loop_close out of assert

Closes #1387
windows: fix buffer overflow on uv__getnameinfo_work()

According to
http://msdn.microsoft.com/en-us/library/windows/desktop/ms738531.aspx,
"NodeBufferSize" and "ServiceBufferSize" parameters of GetNameInfoW()
function are expected to represent the number of WCHAR, not the buffer size
of memory layout.