Test: regression for issue #1549.

It was verified that reverting the commit that fixes the bug, the test
no longer passes.
Log when CONFIG REWRITE goes bad.
Update cached time in rdbLoad() callback.

server.unixtime and server.mstime are cached less precise timestamps
that we use every time we don't need an accurate time representation and
a syscall would be too slow for the number of calls we require.

Such an example is the initialization and update process of the last
interaction time with the client, that is used for timeouts.

However rdbLoad() can take some time to load the DB, but at the same
time it did not updated the time during DB loading. This resulted in the
bug described in issue #1535, where in the replication process the slave
loads the DB, creates the redisClient representation of its master, but
the timestamp is so old that the master, under certain conditions, is
sensed as already "timed out".

Thanks to @yoav-steinberg and Redis Labs Inc for the bug report and
analysis.
Redis 2.8.6.
Sentinel: better specify startup errors due to config file.

Now it logs the file name if it is not accessible. Also there is a
different error for the missing config file case, and for the non
writable file case.
Get absoulte config file path before processig 'dir'.

The code tried to obtain the configuration file absolute path after
processing the configuration file. However if config file was a relative
path and a "dir" statement was processed reading the config, the absolute
path obtained was wrong.

With this fix the absolute path is obtained before processing the
configuration while the server is still in the original directory where
it was executed.
Test: code to test server availability refactored.

Some inline test moved into server_is_up procedure.
Also find_available_port was moved into util since it is going
to be used for the Sentinel test as well.
Test: colorstr moved to util.tcl.
Sentinel: initial testing framework.

Nothing tested at all so far... Just the infrastructure spawning N
Sentinels and N Redis instances that the test will use again and again.
Sentinel: fix slave promotion timeout.

If we can't reconfigure a slave in time during failover, go forward as
anyway the slave will be fixed by Sentinels in the future, once they
detect it is misconfigured.

Otherwise a failover in progress may never terminate if for some reason
the slave is uncapable to sync with the master while at the same time
it is not disconnected.
Sentinel: SENTINEL_SLAVE_RECONF_RETRY_PERIOD -> RECONF_TIMEOUT

Rename define to match the new meaning.
Sentinel test: provide basic commands to access instances.
Prefix test file names with numbers to force exec order.
Sentinel test: info fields, master-slave setup, fixes.
Sentinel test: basic tests for MONITOR and auto-discovery.
Sentinel test: basic failover tested. Framework improvements.
Sentinel test: check reconfig of slaves and old master.
Sentinel test: ODOWN and agreement.
Sentinel test: check that role matches at end of 00-base.
Sentinel test: some reliability fixes to 00-base tests.