* Use grapheme clusters in Text instead of char
char is not what users typically expect as a 'letter' so we should use
grapheme clusters instead. These can't always be represented as single
rust char types so the Text now stores a Vec of single grapheme Strings.
* Add test for grapheme clusters in text
* Use debug_assert_eq instead of debug_assert
* Add failing alignment test case
* Add wasm-pack test to ci
* Box im_rc::Vector contents to satisfy alignment
This makes the frontend not have alignment issues on 32 bit
architectures (e.g. wasm32-unknown-unknown). The box provides a
consistent alignment for the Vector.