to use the bisect built-in module we need to have two separate tables, one with the ranges themselves (which we pass to bisect to get an index) and the other containing the script name for each range. Also, allow the buildUCD.py script to load data files from a local directory, e.g. to allow downstream maintainers to rebuild the generated modules from local files instead of downloading from Unicode website.