Stop the background ping when the client has been closed.

The for-loop in BackgroundPing continued to run even after Close was called on the client. With a closed client the ping would cause Go to panic. The panic occurs because the node.conn field is set to nil when the node is closed and ping tries to use the field.
Switched to using channels rather than locks.

Suggestion by @mrb.
Raise an error when calling Close multiple times.

A non-breaking way of informing informed clients that the client has already been closed.
Simplified the closing of the client by removing the boolean flag and signalling to ping by closing the channel.

time.Ticker was a better fit for what's happening in BackgroundNodePing. I've also removed a possible memory leak by closing the ticker when the client is closed.
Merge pull request #53 from MattFenelon/master

Stop the background ping when the client has been closed.