fixing PQexec() calls

fixing several calls where we did not check the result status but only
the return value; the query may fail nonetheless
flush stderr after a log message appears

We had the problem that the log file appeared empty for a long time due
to file buffers. Thus we call fflush() after every log message so the
log file gets written out to disk quickly
fixing wait_connection_availability()

wait_connection_availability() did take at least 2 seconds per call in
the old incarnation. Now we may finish a call without any sleep at all
when the result is already ready at the time called
fixing repmgr repl_status columns

repmgr repl_status had the column time_lag which was documented to be
the time a standby is behind master. In fact it only works like this
when viewed on the standby and not on the master: there it only was the
time of the last status update. We dropped that column and replaced it
by a new column „communication_time_lag“ which is the content of the
repl_status column on the master. On the standby we contain the time of
the last update in shared mem though refer always to the correct time
nonetheless where repl_status is queried. We also added a new column,
„replication_time_lag“, which refers to the apply delay.
fix: set connection to NULL when finishing it

This will avoid CloseConnections() to try to close an already closed connection.
added some more log messages

Now we should be able to distinguish different events more easily
fix: gettimeofday() expects two arguments
fix: strcpy() on overlapping memory regions is invalid
fix: fixed some leaks
fix: progname is const, do not free it

The leak is irrelevant
fix: now CloseConnections() is much more safe
avoid compiler warnings
Merge branch 'master' into REL2_0_STABLE