utf8.c: No need to check for UTF-8 malformations

This function assumes that the input is well-formed UTF-8, even though
until this commit, the preferatory comments didn't say so.  The API does
not pass the buffer length, so there is no way it could check for
reading off the end of the buffer.  One code path already calls
valid_utf8_to_uvchr(); this changes the remaining code path to correspond.
XXX better commit msg utf8.c: Avoid unnecessary UTF-8 conversions

This changes the code so that converting to UTF-8 is avoided unless
necessary.  For such inputs, the conversion back from UTF-8 is also
avoided.  The cost of doing this is that the first swatches are combined
into one that contains the values for all characters 0-255, instead of
having multiple swatches.  That means when first calculating the swatch
it calculates all 256, instead of 128 (160 on EBCDIC).

This also fixes an EBCDIC bug in which characters in this range were
being translated twice.
XXX t/op/tiehandle.t: skip for now; deep recursion
t/uni/fold.t: EBCDIC fixes
Unicode::UCD.pm: Nits