UnicodeString class and methods for downcase added in addition to upcase.

String#upcase and String#downcase are not overwritten: The application
using this extension might not want to add the overhead, e.g. because
it is staying in the set that can be encoded in ASCII.
Therefore the Class UnicodeString was introduced. It holds data for
enhanced character sets in class variables.

The first two methods in the following list of the methods provided now are
calls to the corresponding method of UnicodeString:
String#unicode_downcase
String#unicode_upcase
String#unicode_downcase!
String#unicode_upcase!

The Hashes uppercase_letters and lowercase_letters are now class variables.
String#unicode_upcase(), String#unicode_upcase!() instanciate Unicode String.