build: rename OS to PLATFORM

Rename the OS make variable to PLATFORM, it conflicts with the OS env
var. That is, running `make` when the OS env var is set, may cause
spurious build breakage.

Fixes #737.
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.
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
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é)
Now working on v0.10.4
include: update uv_backend_fd() documentation

uv_run_once() is no more, replace with uv_run(UV_RUN_NOWAIT).

Fixes #759.
unix: include uv.h in src/version.c

Include uv.h so the compiler sees the right visibility attribute for
uv_version() and uv_version_string().

GYP builds compile with -fvisibility=hidden. Before this commit, the
symbols were not visible in libuv.so.

Fixes joyent/node#5213.
unix: don't write more than IOV_MAX iovecs

Write no more than `IOV_MAX` chunks with `writev()` at
once, otherwise `writev()` returns EINVAL.
mingw-w64: don't call _set_invalid_parameter_handler

Check the __MSVCRT_VERSION__, as mingw-w64 always defines
_WRITE_ABORT_MSG.

Closes #774