Support for double byte characters

This introduces support for double byte characters (characters whose width is double the width of normal characters, mainly present in CJK).