Make extension work with Chrome 38+

This required moving the SSE to a background page so it would be allowed
to listen to the SSEs from a localhost server (JS running in an HTTPS
context cannot).

Then we needed another communication mechanism to talk from the
background page to the injected script. The Chrome runtime
extensino communication APIs worked for this.

Also switch from coffeescript to plain old JS.

Fixes #9