Fix #35 where "Å".lower would return "å\x00".

String#lower and String#upper incorrectly assumed that casefolded unicode
characters would have the same byte length when represented as UTF-8.