Use Operational Transform to synchronize text fields in forms.

This fixes bug #5 using @ianb's ot.js file. The hub is used to provide a canonical serialization of the changes, and we use OT to reorder/transpose our deltas if a peer managed to sneak in a change before ours was echoed back by the hub.

This is a revised version of pull request #657.