unicode: convert to stateless namespace module
Convert Unicode.zig from a struct-based API requiring initialization
to a stateless namespace module. This eliminates the need to allocate
and pass Unicode instances throughout the codebase.
Remove the unicode field from all structs including Vaxis, Window, and
various widget types. Change graphemeIterator from a method requiring
a Unicode instance to a namespace function that can be called directly.
Update all callsites to use unicode.graphemeIterator(str) instead of
self.unicode.graphemeIterator(str). Remove all Unicode.init() and
unicode.deinit() calls as they are no longer needed.
This simplifies the API and reduces coupling since grapheme iteration
no longer requires passing Unicode instances through the component
hierarchy.
Amp-Thread-ID: https://ampcode.com/threads/T-d83881e8-f6ea-45ee-889f-f480c0c6d4cb
Co-authored-by: Amp <amp@ampcode.com>