String
Inherits Comparable < Reference < Object
The basic premise is we shift characters into the Fullwidth and Halfwidth Unicode character space using simple arithmetic and a 0x0020 (32) character offset since the ASCII characters with fullwidth replacements only begin showing up at 0x0021 in Unicode (0x0020 is the space character).
This code was ported from Ruby and is currently missing the bang versions
because there doesn't exist a String#replace method in Crystal yet.