Add utility for generating C++ from the UCD

This Python tool will parse the Unicode Character Database and generate
a C++ file contain the data we care about, namely:

- The ranges of numeric, alphabetic, uppercase and lowercase code points

- Tables for mapping characters to uppercase, lowercase, folded case or
  their numeric value (0-9)
Add UnicodeData

This is a simple Unicode database that can perform all the operations
required by R7RS. This is built upon a (large) generated database file
from the UCD => C++ Python script introduced in the previous commit.
Unify CodePoint type

Merge the CodePoint type from StringValue and UnicodeData in to a single
type defined in a new common/global.h header.
Implement case insenstive string comparisons

Use the new UnicodeData::foldCase() to fold the case of the Unicode code
points. Also change the interface to decodeUtf8Char() to increment the
pointer it's passed to make it less awkward to interate over a string's
code points.