include: use x macros for uv_any_{handle,req} unions

Generate the members of the uv_any_handle and uv_any_req unions with
the UV_HANDLE_TYPE_MAP and UV_REQ_TYPE_MAP macros. Eases maintenance
when new handle or request types are added.
unix, windows: nanosecond resolution for uv_fs_[fl]stat

Closes #739.
unix: make uv_timer_init() initialize repeat

uv_timer_get_repeat() should return 0 for timers that haven't been
started.
unix: make timers handle large timeouts

This commit fixes two closely related integer overflow bugs:

* Timers with a timeout > INT_MAX cause uv__next_timeout() to return
  a negative value.

* Timers with very large timeouts (close or equal to ULLONG_MAX) run on
  the next tick.

In both cases, clamp the values to prevent the overflow from happening.

Fixes joyent/node#5101.
Merge remote-tracking branch 'origin/v0.10'
build: add OBJC makefile var

Overrides the Objective-C compiler that is used. Defaults to $(CC).
Prepare for making releases, add uv_version/uv_version_string API
Update AUTHORS and .mailmap
2013.03.25, Version 0.10.2 (Stable)

This is the first officially versioned release of libuv. Starting now
libuv will make releases independently of Node.js.

Changes since Node.js v0.10.0:

* test: add tap output for windows (Timothy J. Fontaine)

* unix: fix uv_tcp_simultaneous_accepts() logic (Ben Noordhuis)

* include: bump UV_VERSION_MINOR (Ben Noordhuis)

* unix: improve uv_guess_handle() implementation (Ben Noordhuis)

* stream: run try_select only for pipes and ttys (Fedor Indutny)

Changes since Node.js v0.10.1:

* build: rename OS to PLATFORM (Ben Noordhuis)

* unix: make uv_timer_init() initialize repeat (Brian Mazza)

* unix: make timers handle large timeouts (Ben Noordhuis)

* build: add OBJC makefile var (Ben Noordhuis)

* Add `uv_version()` and `uv_version_string()` APIs (Bert Belder)
Now working on v0.10.3
include: remove extraneous const from uv_version()

Fixes the following warning:

  include/uv.h:236:30: warning: type qualifiers ignored on function
  return type [-Wignored-qualifiers]
   UV_EXTERN const unsigned int uv_version(void);
doc: update README, s/OS/PLATFORM/

Commit a9740c9 changed the name of the OS var to PLATFORM but forgot to
update the README.
build: simplify .buildstamp rule
Merge remote-tracking branch 'origin/v0.10'
unix: getaddrinfo_cb status arg should be 0 or -1

The documentation in uv.h states that the status argument to the
uv_getaddrinfo() callback is either 0 or -1 but uv-unix actually
passed it the addrinfo error code. Rectify that and add a regression
test.

Fixes #754.
unix, windows: remove ngx-queue.h

Avoids an extra #include in public headers and stops the ngx_queue_*
types and macros from leaking into user code.
build: disable -Wstrict-aliasing on darwin

The antiquated gcc/clang that ships with Xcode emits waaaay too many
false positives.
darwin: don't select(&exceptfds) in fallback path

The exceptfds set is for polling OOB data, not errors.

Fixes joyent/node#5155.
unix: don't clear flags after closing UDP handle
2013.02.04, Version 0.10.3 (Stable)

Changes since version 0.10.2:

* include: remove extraneous const from uv_version() (Ben Noordhuis)

* doc: update README, replace `OS` by `PLATFORM` (Ben Noordhuis)

* build: simplify .buildstamp rule (Ben Noordhuis)

* build: disable -Wstrict-aliasing on darwin (Ben Noordhuis)

* darwin: don't select(&exceptfds) in fallback path (Ben Noordhuis)

* unix: don't clear flags after closing UDP handle (Saúl Ibarra
  Corretgé)