Normalize all unicode identifiers to NFC

This addresses issue #5434.  As per the apparent consensus in that issue, all identifiers are [normalized](http://unicode.org/reports/tr15/) to NFC, which canonicalizes composite characters but does *not* canonicalize easily-confused characters ("compatibility equivalents") such as µ (micro) and μ (mu).

~~However, when the interpreter throws an "identifier is not defined" exception, it checks whether the identifier differs from its NFKC normalization, and if so it warns that the identifier may contain easily confusable unicode characters.  (Even better would be to do an NFKC-normalized lookup of the identifier to see if there is a similar-looking identifier that is defined, but that was more work to implement and this seemed like a good start for now.)~~

This patch adds the [utf8proc library](http://www.public-software-group.org/utf8proc) to `deps` and to `libjulia`.  This is a small (< 600 lines) MIT-licensed C library that implements various unicode normalizations (about 500kB when compiled, since it includes a database of unicode codepoints).   As a separate pull request, we should probably add functions to `Base` to expose some of this functionality within Julia (e.g. for normalization, Unicode-aware case-folding, diacritical-stripping, etcetera).