toke.c: Typo in comment
charnames: Bump version to 1.43
charnames: Nit in comments, pod
lib/_charnames.pm: Change variable name

This lexical variable's use is about to change so it no longer will
always be in UTF-8 encoding.  So the name would become misleading.
toke.c: Ignore 'use encoding' on \N{}

The encoding pragma converts from a specified encoding into Unicode.
\N{} already returns the Unicode form, so the encoding pragma
should not operate on them.  This commit ensures that.  The only reason
things have appeared to work prior to this commit is that \N{} has
generally returned its value in UTF-8, which 'encoding' knows enough to
not disturb.  However, a custom name translator installed in the program
need not return in UTF-8, so this is a bug that just hasn't yet been
exposed.

However, the next commit is about to change things so that a regular
\N{} only returns UTF-8 if it has to, so this bug would come up a lot
more often.  There is no need for adding a test case, because, without
this commit existing tests would fail in t/uni/greek.t.
charnames: Don't return UTF-8 unless have to.

A Latin-1 range character doesn't require UTF-8 to be represented.  Not
using UTF-8 speeds things up a lot.  This commit changes the return to
be UTF-8 only if necessary.  This could be because
 1) the character isn't representable except in UTF-8; or
 2) we are being called at runtime and the character isn't ASCII-range.
    The only way we can currently guarantee that an upper-Latin1
    character will be treated with Unicode rules is to make it UTF-8
    (the Unicode bug).  The compile-time code (in toke.c) knows how to
    properly deal with non-UTF-8 upper Latin1 range characters.

The utf8::downgrade introduced in this commit is temporary.  Future
commits will change things so that there is no need for it.
charnames: Generalize to work on non-ASCII platforms

This includes the tests.

The character names are now stored in native order.  This means that
pack('U') no longer works on non-ASCII platforms.  Use chr instead,
mostly, and pack('W*') for a sequence.

These changes required the 'encoding' pragma to no longer affect e.g.,
chr() outside its scope, which was recently done by
3e669301f0a6fa34269f0e1eaf1fbbd72cae498a.
perlvar: Add info