Correct CSV dialect
Make DatabaseConnector._decode() a null function

In addition to being unnecessary in Python3, it was detecting the
__iter__ property of strings, and so converting str to tuple(str).
This caused an error in GlyphBuilder.

TODO: remove references to this method.
Bump SQLAlchemy version
Speed improvements for EntryGeneratorBuilder and Unihan database

cjklib/build/builder.py
- Use SQLAlchemy batch inserts in EntryGeneratorBuilder.generate()
- UnihanGenerator: don't read entire files into memory; wrap
  zipfile.ZipExtFile in io.TextIOWrapper.
- UnihanBuilder: don't read every line of the database files to find
  key names; instead read these from the file headers. Same set of keys
  is obtained (may not be backwards-compatible).