Ported the utf module over.
Ported over the string type, which revealed some bugs in the utf and hash modules.