New in INFO: aof_last_bgrewrite_status

Behaves like rdb_last_bgsave_status -- even down to reporting 'ok' when
no rewrite has been done yet.  (You might want to check that
aof_last_rewrite_time_sec is not -1.)
Truncate short write from the AOF

If Redis only manages to write out a partial buffer, the AOF file won't
load back into Redis the next time it starts up.  It is better to
discard the short write than waste time running redis-check-aof.
Sentinel: abort failover if no good slave is available.

The previous behavior of the state machine was to wait some time and
retry the slave selection, but this is not robust enough against drastic
changes in the conditions of the monitored instances.

What we do now when the slave selection fails is to abort the failover
and return back monitoring the master. If the ODOWN condition is still
present a new failover will be triggered and so forth.

This commit also refactors the code we use to abort a failover.
Merge pull request #602 from mrb/sentinel_docs

Some cleanup in sentinel.conf
Merge pull request #603 from mrb/fix_sentinel_config_warning

Fix warning in redis.c for sentinel config load
Sentinel: ability to execute notification scripts.
comment fix

improve English a bit. :-)
Merge pull request #604 from jzawodn/patch-1

comment fix
Sentinel: don't start a failover as leader if there is no good slave.
Merge pull request #586 from saj/aof_last_bgrewrite_status

New in INFO: aof_last_bgrewrite_status
Merge pull request #587 from saj/truncate-short-write-from-aof

Truncate short write from the AOF
Include sys/wait.h to avoid compiler warning

gcc warned about an implicit declaration of function 'wait3'. 
Including this header fixes this.
Merge pull request #606 from badboy/patch-1

Include sys/wait.h to avoid compiler warning
comment fix

improve English a bit. :-)
Sentinel: scripts execution engine improved.

We no longer use a vanilla fork+execve but take a queue of jobs of
scripts to execute, with retry on error, timeouts, and so forth.

Currently this is used only for notifications but soon the ability to
also call clients reconfiguration scripts will be added.
Merge remote-tracking branch 'origin/unstable' into unstable
Sentinel: abort failover when in wait-start if master is back.

When we are a Leader Sentinel in wait-start state, starting with this
commit the failover is aborted if the master returns online.

This improves the way we handle a notable case of net split, that is the
split between Sentinels and Redis servers, that will be a very common
case of split becase Sentinels will often be installed in the client's
network and servers can be in a differnt arm of the network.

When Sentinels and Redis servers are isolated the master is in ODOWN
condition since the Sentinels can agree about this state, however the
failover does not start since there are no good slaves to promote (in
this specific case all the slaves are unreachable).

However when the split is resolved, Sentinels may sense the slave back
a moment before they sense the master is back, so the failover may start
without a good reason (since the master is actually working too).

Now this condition is reversible, so the failover will be aborted
immediately after if the master is detected to be working again, that
is, not in SDOWN nor in ODOWN condition.
Sentinel: sentinel.conf self-documenation improved.
Use correct variable name for value to convert.

Note by @antirez: this code was never compiled because utils.c lacked the
float.h include, so we never noticed this variable was mispelled in the
past.

This should provide a noticeable speed boost when saving certain types
of databases with many sorted sets inside.
Sentinel: sentinelRefreshInstanceInfo() comments improved a bit.