Add es package

Looking for some feedback on this approach to talking to ES.
Yeah, the logic behind it is a bit subtle. Basically it will only reuse a connection if the calling application has read all of the body. If it's been closed before being finished it will be for two reasons either the application isn't interested, or it;s decided the data is too big and doesn't want to download it. If it's  the latter then the standard library has no business downloading it all just so it can reuse the connection. I gained intimate knowledge of the workings of this in my last job when solr was happily sending me a completely unneeded \n at then end of some json that the unmarshaller didn't get to and so ended up spinning through connections because of a single unread byte.