Add some unit-tests for `haskell-str-literal-{encode,decode}`
Optimize `haskell-str-literal-encode`

This optimizes the case of trivially escaped strings (i.e. those that
don't use any escaping and don't look lexically invalid).