http: add agent.keepAliveTimeout option

Eanble to set a timeout for the free keep-alive sockets.

* Remote server won't keep the free socket alive forever. After some seconds, e.g. `30s`, the server close the socket. At the same time, if reuse this closing socket, will cause `socket hangup` error. So we need to close the free socket before the server close it.

* And the `FIN` packet sent by server maybe lost too, then the client socket won't receive the `FIN` packet and it won't emit `close` event. So we need a free socket timeout to help us cleanup the zombie sockets.

Fixed joyent/node#6486