Allow the clients to request a server echo of their messages.

Since the server sends messages in the same order to all clients, this
allows clients to use the server message order as the canonical edit
serialization order.  This simplifies client-side OT.
Implement OT synchronization of text fields in forms.

Uses the server echo feature to define a canonical serialization of all
changes.  If a client receives a change from a peer which serializes
before the changes they have queued, the OT delta transpose functions
are used to reorder the patches, and then the local changes are
retransmitted.

We also use the OT mechanism to handle updates to the cursor position
and selection.
Merge pull request #660 from cscott/ot-merge-2

Use Operational Transform to synchronize text fields in forms.