Timeout if elasticsearch is misbehaving

This PR adds support to `Elasticsearch::Client` for specifying timeouts which
are passed through to the underlying `RestClient` instance.

Also add a couple of default timeouts (2s connection, 2s between-reads) in
`Elasticsearch::Index`.