add more illustrative example for char_to_unified
move pattern match for padded_hex_string into arg

this should have the benefit of guarding by only allowing the function
to be called with a single utf-8 codepoint as an arg, instead of
producing a MatchError in the body of the function if something else
was passed.

in practice this never happens because its a private function I only
use in one place above, but it feels right
simplify from_short_name

and add a test for better sanity checking on secondary keywords
implement EmojiChar.codepoints
update funcs to use new codepoint_ids alias

shortens up some code