Fix a serious UTF-16 string bug, and switch to C++11 char types.
Add clang support, and fix an issue it illuminated