Fix broken Unicode handling in `instance Store Char`

The previous implementation of `instance Store Char` silently
truncated all Unicode code points to 8-bit. This commit extends the
implementation to use UTF8 encoding for storing `Char`
values (resulting in the same on-disk format for pure ASCII
identifiers). The actual UTF8 encoding is provided by the `text`
package which is added to the build dependencies.

Note: Due to the UTF8 encoding, the getList implementation couldn't be
retained in the previous form. However, the long-term solution should
be to switch to using `Text` instead of `[Char]` for serializing text
strings anyway, which can then be simply serialized as UTF8 encoded
ByteStrings.