Elastic Mill v1 WIP — code review and comments welcome

Work in progress for Elastic Mill version 1.

Elastic Mill is a basic HTTP proxy for Elasticsearch, which proxies read requests, but intercepts updates and combines them into batches. It's built to let applications benefit from preparing their updates in massive parallel, while consolidating those updates into efficient batches for Elasticsearch's Bulk API.

This is my first public open source Go project, so comments and feedback are welcome.

### TODO for v1

- [x] simply proxy read requests
- [x] intercept individual document updates and format them for the Bulk API
- [x] pull updates off of a channel into reasonable batches
- [ ] process cluster bulk requests
- [ ] process index bulk requests (index name may be implicit in the URL)
- [ ] process type bulk requests (index and type names may be implicit)
- [ ] actually send batches of updates to Elasticsearch
- [ ] gracefully retry failed updates
- [ ] respond to intercepted requests with a nice HTTP 202
- [ ] general Golang sanity check