Added support for ping timeouts.

In order to send PINGs, as far as I can tell, we must know the name of our host,
so I've also added a mechanism for accepting the "yourhost" event and storing
the name received, then using that for the pings.

Of course, we might get a timeout after connection and waiting for the "yourhost"
event, so there's a timer there as well.
Made default ping timeout/interval lengths more sane
Merge remote-tracking branch 'philip/pingtimeout' into 0.3.x