~raph/xi2

Move to rope-based text layout storage

This doesn't do any incremental processing, but gets the data structure
in place.

It also separates the calculation of cursors from generation of text
layouts, which is the right move for handling cursor-only updates.
Specialized LayoutRope object

Changed from a generic to a specific object for layout ropes. This is
not yet wired into the main widget, but that's next.
Checkpoint generic HeightRope

I'm going to commit the generic version of the HeightRope as a
checkpoint. Right now, I think this will go easier if I take it
non-generic, as it's starting to feel pretty specialized.
Start implementing height rope

This checkpoints the start of a generic rope-based vector without any
height measurement. We might do height measurement as a trait, or just
specialize this to TextLayout.
Bump Druid dep

Now we don't need to patch Piet to get the D2D measurement fixes.
Line wrapping

This version would be inaccurate on windows with piet 0.2.0-pre1, and
was used to shake out problems in that. Also, it was crashing on blank
last line, but now contains a hackish fix for that.

Thus, it patches the D2D piet measurement fixes, committed but not yet
released.
Update to latest druid

This mostly gets us the latest piet, which will allow better control
over layout and hit testing.
Basic vertical movement

Up and down arrow keys, with horizontal positioning.

The horizontal positioning requires plumbing text measurement down to
the xi-text-core module, which is done with a trait.
Starting to implement basic editing

Draw the cursor. Factor out key bindings into a separate module. This is
preparation for getting the movement commands working.
Wire up basic insert and backspace
Use rope for text storage
Update to recent Druid

Still very much an embryonic start, but at least it compiles with recent Druid.
Start populating xi-text-core

Get selection datatype and basic edit commands into xi-text-core
Start editor codebase

As of now, this is an experiment of doing an editor widget using
druid. A bunch of problems here, including pointing to local deps
(not even git). Need to do some work before this is releasable.