Create buffered bulk client and interfaces for ES

Refactored to use interfaces for expressing ES transactions.
Created bulk bytes buffer for creating bulk requests.