Add controllers.api.DocumentControllers

[refs #76745910]

To do:

* Make a production-ready ElasticSearch interface
* Add routes
* Pagination [#77540430]
Typo fix
Make everybody use the same ElasticSearch config

Changes:

* It's now a "Node client", which is the recommended one.
* It connects on first use now.
* There's a common API (worker drills through to the ElasticSearch API).
* It's unit-tested.
* It now looks for "elasticsearch.cluster_name" and
  "elasticsearch.hosts" parameters, or $ES_CLUSTER_NAME and $ES_HOSTS.
  That means CHANGE YOUR CONFIG FILES!