Heartbeat

Most commits are cleanup except the last one which is the true commit. It adds a heartbeat over the connection, sending pings to the server and calling #reconnect! when the redis server doesn't respond in time.