add persistence

* browser window will create a persistent cursor that survives backend restarts (using HTML5 sessionStorage)
* all messages are persisted
* sending is retried until successful
* JS embellishments to send with cmd-enter
* display connection status

Currently missing is old cursor cleanup (each cursor stores snapshots to
persist which messages have already been transmitted).

The reason for the SNAPSHOT dependency for Akka is akka/akka#15730.