Adds a heartbeat check on the BaseClient

Usage:

```ruby
c = EM::Hiredis.connect
c.run_heartbeat(5) # runs every 5 seconds
```

The heartbeat will send a ping to the server every 5 seconds. If no response
has been given back on the next beat then the heartbeat will initiate a client
reconnection.

The heartbeat setup should be part of the constructor but it would change the
signature of too many methods.