Use the `split` packagke instead of regex to insert ANSI codes

Fixes #242. The issue (as pointed out in the original issue) is that the String implementation of `Text.Regex.PCRE` falls over on unicode input. It behaves correctly when using `ByteString`, but going that route (I spent about an hour on it) revealed to be rather laborious. I decided to go with this implementation which is semantically equivalent. 

The only caveat is that it requires the split package. The good news is that this is included in the Haskell Platform. For those of us not using Haskell Platform, I've added the appropriate line to the Cabal file. The only remaining corner case is to ensure that distro packages include haskell-split or similar.