Fix test framework to detect proper server PID

Previously the PID format was:
[PID] Timestamp

But it recently changed to:
PID:X Timestamp

The tcl testing framework was grabbing the PID from \[\d+\], but
that's not valid anymore.

Now we grab the pid from "PID: <PID>" in the part of Redis startup
output to the right of the ASCII logo.
Sentinel example config: explain you don't need to specify slaves.
Cluster test: catch FLUSHALL errors on node reset.

FLUSHALL will fail on read-only slaves, but there the command is not
needed in order to reset the instance with CLUSTER RESET so errors can
be ignored.
Cluster: always allow ok -> fail switch in clusterUpdateState().

There is a time defined by REDIS_CLUSTER_WRITABLE_DELAY where fail -> ok
switch is not possible after startup as a master for some time, however
the contrary (ok -> fail) should always be possible.
Disable recursive watchdog signal handler

If we are in the signal handler, we don't want to handle
the signal again.  In extreme cases, this can cause a stack overflow
and segfault Redis.

Fixes #1771
Merge pull request #1775 from mattsta/fix-test-against-new-PID-format

Fix test framework to detect proper server PID
Cluster test: add tmp dir to Git repo.
Add Travis CI
Add automated testing for creating clusters

This script will run over 200 cluster creations
on different replica and instance counts.

It currently works on my OS X system and in a Linux VM.
It's designed to work on a CI server so it can just run
in the background and the system will report if the script
fails.
Add cluster bring-up testing to CI configuration
Add Redis cluster test to CI

The more tests the better!