Implement String case conversion methods

This adds ::toLowercaseString, ::toUppercaseString and
::toCaseFoldedString based on the UnicodeData database
Unicode database generation improvements

- Place all of the hash chains for a given UnicodeHash in a single
  array. This reduces the object file size of UnicodeData.cpp from
  ~130KB to ~70KB on 64bit OS X release builds

- Store the ASCII mapping tables as int8_t instead of int32_t. This
  shaves off another 1.5KB

- Output ASCII mapping tables with 8 values to a line to reduce the
  vertical space they require in the source file

- Output ranges as hex instead of decimal to match the hash tables and
  the convention of referring to code points by their hex value.

- Use the low bit of the hash chain pointer to indicate an inline value
  instead of the high bit. The high bit is typically reserved for kernel
  addresses in x86-64 but other platforms might have valid pointers with
  the high bit set. On the other hand, the low bit should be clear on
  all reasonable platforms assuming the table entries are at least two
  byte aligned.