don't define _XOPEN_SOURCE for NetBSD

on NetBSD, defining _XOPEN_SOURCE hides extensions
like inet_aton, strcasecmp, etc.
rename popcount to popcount_binary to avoid a conflict with NetBSD libc

NetBSD-current's libc has a function named popcount.
hiding these extensions using feature macros is not possible because
redis uses other extensions covered by the same feature macro.
eg. inet_aton
use nanosleep instead of usleep

SUSv3 says that:
	The useconds argument shall be less than one million. If the value of
	useconds is 0, then the call has no effect.
and actually NetBSD's implementation rejects such a value with EINVAL.
use nanosleep which has no such a limitation instead.
don't assume time_t == long

time_t is always 64bit on recent versions of NetBSD.
Try to report source of bad Lua API calls
test-server: only listen to 127.0.0.1

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Merge pull request #819 from Keruspe/unstable

test-server: only listen to 127.0.0.1
Merge pull request #1124 from ioddly/fix-issue-1121

Try to report source of bad Lua API calls
Lua scripting: improve error reporting.

When calling Lua scripts we try to report not just the error but
information about the code line causing the error.
Lua script errors format more unified.

lua_pcall error handler now formats errors in a way more similar to
luaPushError() so that errors generated in different contexts look alike.
Fix logStackTrace() when logging to stdout.

When the semantics changed from logfile = NULL to logfile = "" to log
into standard output, no proper change was made to logStackTrace() to
make it able to work with the new setup.

This commit fixes the issue.
Allow writes from scripts called by AOF loading in read-only slaves.

This fixes issue #1163
Fix comment typo in integration/aof.tcl.
Test: regression test for #1163.
Sentinel: parse new INFO replication output correctly.

Sentinel was not able to detect slaves when connected to a very recent
version of Redis master since a previos non-backward compatible change
to INFO broken the parsing of the slaves ip:port INFO output.

This fixes issue #1164
PUBSUB command implemented.

Currently it implements three subcommands:

PUBSUB CHANNELS [<pattern>]    List channels with non-zero subscribers.
PUBSUB NUMSUB [channel_1 ...]  List number of subscribers for channels.
PUBSUB NUMPAT                  Return number of subscribed patterns.
Allow PUBSUB NUMSUB without channels.

The result is an empty list but it is handy to call it programmatically.
Initialize char* to NULL to remove compiler warning
Merge pull request #1167 from badboy/patch-1

Initialize char* to NULL to remove compiler warning
New API to force propagation.

The old REDIS_CMD_FORCE_REPLICATION flag was removed from the
implementation of Redis, now there is a new API to force specific
executions of a command to be propagated to AOF / Replication link:

    void forceCommandPropagation(int flags);

The new API is also compatible with Lua scripting, so a script that will
execute commands that are forced to be propagated, will also be
propagated itself accordingly even if no change to data is operated.

As a side effect, this new design fixes the issue with scripts not able
to propagate PUBLISH to slaves (issue #873).