Inline Text Editor and StringDecoder updates

changing more code to use the ISegment
initial revision of datatabs

data tabs is a feature that will eventually allow me to store pointers
to multiple file locations, as well as store data not in the main file.
In order for it to work, all the current data must be transfered to an
initial "home" tab. This change begins that adaptation by shifting
properties into the DataTab class and making the other code call that
instead of taking the data directly from the window.
update cursorcontroller to use datatabs
update cursor control

the highlight-when-hover mechanic for the interpretation pane now works
correctly again. Also, after a highlight, keyboard controls move you to
the beginning or end of the highlight instead of ignoring the highlight.

Due to the cursor always jumping when the window jumps, move-to-end
didn't work if the end was not onscreen. Now the cursor stays where it
is, so it's not a problem now.