pyelasticsearch has four parameters and we add an additional one in get_es(). By throwing all that into the .es(), it means it'll work with future versions of pyelasticsearch without us having to do a 1-for-1 chainable method thing. I figured this is easy-to-use and easy-to-document. If someone wants to do something serious, they should subclass `S` and override `get_es()` to meet their needs. Also, I didn't really have a compelling reason to do something more complicated, but that could be lack-of-imagination.