Kinesis Elasticsearch sink

The pattern is fine but I would probably put executor in a `Validation` box. Then you can have something like

```scala
executor match {
  case Success(exec) => exec.run() // () because this is insanely side-effecting
  case Failure(err) => throw new RuntimeException(err)
}
```