Test framework: exit on timeout with report.

There was no sane way to detect tests that may never end because of
Redis bugs or tests bugs.
Test: try to cleanup still running Redis instances on exit.

It's hard to run the Redis test continuously if it leaks processes on
exceptions / errors.
Test: wait for actual startup in start_server.

start_server now uses return value from Tcl exec to get the server pid,
however this introduces errors that depend from timing: a lot of the
testing code base assumed the server to be actually up and running when
server_start returns.

So the old code that waits to see the pid in the log file was restored.