Add unicode support.

The PCRE String backend does not properly support unicode, however the ByteString backend does, provided that PCRE is built with UTF8 support. UTF8 support is not yet released in regex-pcre-builtin but the support has been merged: see https://github.com/audreyt/regex-pcre-builtin/issues/3 and https://github.com/audreyt/regex-pcre-builtin/pull/4 for further background.

This patch enables the use of the ByteString backend and properly converts between UTF8 ByteStrings and Strings.

Proper unicode support is needed at least for Agda syntax highlighting (see https://git.reviewboard.kde.org/r/117167/), but there may be more syntax files that might rely on this (e.g. Haskell).