Try installing ICU plugin on Travis
Raise a error if the ICU plugin is not installed

This plugin is required by ElasticSearch and provides installation
instructions when required. This was causing issues for new contributors
who missed this part of the README.
Merge pull request #1781 from hypothesis/icu-installation-warning

Raise a error if the ICU ElasticSearch plugin is not installed
Move check for ES plugins

store_from_settings can be called from multiple places, each needing to
check for the plugin, so it seems better to incorporate it in there.
Add .DS_Store to .gitignore

Because Mac.
Update Annotator to 6623b2c2 (typed-packaging branch)
Handle an init race condition

... when the bucket bar is being updated
before the document access strategy becomes
available. (This sometimes happens when using
PDF.js in the Chrome extension.)
Update PDF plugin

... to cfac672e (typed-packaging branch).

Fixes #1788.
Revert "Add .DS_Store to .gitignore"

This reverts commit 3c5952ddacbfd883ce9f0ea0a2f317a47670de39.

Per feedback from @aron
https://github.com/hypothesis/h/commit/3c5952ddacbfd883ce9f0ea0a2f317a47670de39#commitcomment-8916616
Set elasticsearch requirement higher

Plugin listing support (which we use as of
244130c925d66efd2cf84fe972d452ad9cd5c313)
was added in elasticsearch 1.1.0.
Stripping plugin names after the split

Otherwise it was failing due to a trailing space
after `analysis-icu`
Update Elasticsearch Version

I also included specific instructions for getting elasticsearch to start automatically when the system is booted.
whitespace
Link to install instructions for ICU Analysis plugin
socket: Unexport clientID

This isn't used anywhere else, so simplify the interface of Socket by
inlining a call to get the client ID.
socket: Simplify clientID generation

It's not clear to me why we were using this rather complicated method of
generating a UUID. Suffice to say that simply calling uuid.v4() has much
the same effect.
streamer: Add new streamer service

This commit adds a streamer service that abstracts interaction with the
streamer websocket.
Install and configure the streamer
Replace socket with streamer

Replaces direct use of the websocket with use of the streamer service
introduced in the previous commit.
(whitespace) long lines and injection alignment