Further SegmentVariant refactoring

This was part of the refactoring I did for copy/paste in 1.1 and never committed, since it was right before the 1.1 release.  I've removed the copy/paste parts, but I think this is still useful.  Basically, this will prevent us from having to re-implement some tedious string logic to support SegmentTextCell with the xliff 2.0 code.

Commit message:
    This changes the SV implementations to expose text and code "atoms",
    which are then manipulated by common code in BaseSegmentVariant.

    This includes the replaceSelection() method, which isn't used
    anywhere and is intended to be part of copy/paste support.