build: add DTrace detection for autotools
linux,darwin,win: link-local IPv6 addresses

Modified uv_ip6_addr() to fill sin6_scope_id for link-local addresses.

Fixes #271

Conflicts:
	build.mk
unix: fix build when !defined(PTHREAD_MUTEX_ERRORCHECK)

Ancient versions of glibc (<= 2.3.1) don't have error-checking mutexes.
Merge remote-tracking branch 'origin/v0.10'
unix, windows: return error codes directly

This commit changes the libuv API to return error codes directly rather
than storing them in a loop-global field.

A code snippet like this one:

    if (uv_foo(loop) < 0) {
      uv_err_t err = uv_last_error(loop);
      fprintf(stderr, "%s\n", uv_strerror(err));
    }

Should be rewritten like this:

    int err = uv_foo(loop);
    if (err < 0)
      fprintf(stderr, "%s\n", uv_strerror(err));

The rationale for this change is that it should make creating bindings
for other languages a lot easier: dealing with struct return values is
painful with most FFIs and often downright buggy.