A simple datatype for collecting sequences of strings that are to be
concatenated together.
We intend to maintain several invariants. First, that no sequence is
empty; the empty string literal should instead be the unique
representative of empty strings. Second, that string sequences do not
contain adjacent literals. In other words, adjacent string literals
are coalesced.