Invariants: at least two characters long, does not contain 'n'. For
empty documents, there is Empty; for singleton documents,
there is Char; newlines should be replaced by e.g.
Line.
Since the frequently used length of Text is
O(length), we cache it in this constructor.
(unsafeTextWithoutNewlines s) contains the literal string
s.
The string must not contain any newline characters, since this is an
invariant of the Text constructor.