Reconnect

This code is a little hacky but it's the best I could do without any major structural changes. Whenever `Cmd` or `GetReply` return an error that stems from `writeRequest` (aka, a network error) they will attempt to reconnect before returning that error. If the reconnect fails that error isn't passed back, but the reconnect does not happen (obviously). As clients continue calling commands it will keep trying to reconnect, but will keep returning errors in the mean-time.

Also, `gofmt` knocked out a bunch of whitespace, so there's some fluff line changes in there about that.