Adding the ability to set keepaliveinterval and attempt socket reconnect on exception in _send_data

Re: Issue #458

Turning on keepalives alone didn't work with the amazon ELB. However what it did was force the ELB to actively reset the connection after 60secs. This causes a broken pipe error next time the socket is used, this can be caught, socket reconnected and data sent.

I also made the keepaliveinterval configurable, the default is 2 hours which was way too high for the ELBs 60sec timeout.