Add Close() function to client

Because (as far as I know) go-etcd is not thread/goroutine safe I have to create new client in each goroutine. 

The http.Transport uses KeepAlive by default, which causes problems if new clients are created faster than the http connections are closed.

This function stores the Transport object in the Client and calls CloseIdleConnections()
Just a suggestion:

```
func (c *Client) Close() error {
	tr, ok := c.httpClient.Transport.(*http.Transport)
	if ok {
		tr.CloseIdleConnections()
	}
	return nil
}
```

Otherwise you can loose `c.transport` when someone calls `SetTrasnport`