Rewritten the romaji converter.

Current code is a bit messy, but no worries: it has tests.