Map characters to and from their name given in the Unicode standard.
This goes to great lengths to be as efficient as possible in both time
and space, with the full bidirectional tables weighing barely 500 KB
but still offering O(1)* look-up in both directions. (*more precisely,
O(length of name).)