More changes to perllocale and POSIX.pod setlocale

These address some concerns from John Peacock.
lib/locale.t: Use hash keys instead of many arrays

This implementation detail allows easier handling of things as a whole.
We could save code by adding evals, but I'm trying to not add the added
complexity of evals to the tests here.
lib/locale.t: Display :punct: characters under debug mode

This class of characters was previously omitted
lib/locale.t: Change debug output

This combines the output so that all characters are shown in code point
order, with only ASCII alphanumerics displayed literally.  This is
clearer.
lib/locale.t: Display unassigned chars

This adds debug output to list the characters that aren't matched by any
posix class.
lib/locale.t: Add a bunch of tests

I looked through the online standard and added as many conformance tests
as I could think of.
smoke
smoke