Change Chunk to list of strict Text

This changes the internals of the Chunk so that
the textual data is held as a list of strict Text
rather than as a single Text.  This allows you to
easily make a single lazy Text into a Chunk, as a
lazy Text conceptually is nothing but a list of
strict Text.

Though you could theoretically make a lazy Text
into multiple Chunks (and you still can even with
this patch) and manipulate the multiple Chunks,
this would be nasty from a UI perspective and
Rainbow is all about having a simple interface.

This breaks compatibility with previous versions
but I would rather get this right.  Some libraries
that depend on Rainbow relied on each Chunk having
just a single member Text; these will need to be
updated.

I considered changing the internals of the Chunk
so that it would instead use a list of strict
ByteString rather than a list of strict Text, as
this would allow flexibility to use Char8
bytestrings; however, I am leaving things with
Text for now as Unicode is the future.

Closes #1
Closes #2