make codepoint(c) work for overlong chars (#55152)
As discussed in #54393, `codepoint(c)` should succeed for overlong
encodings, and whenever `ismalformed(c)` returns `false`. This should be
backwards compatible since it simply removes an error, and should be
strictly faster than before since it merely removes a call to
`Base.is_overlong_enc`.
Also, `Base.ismalformed` and `Base.isoverlong` are declared `public`
(but not yet exported) and are included in the manual, since they are
referenced in the docstring of `codepoint` etcetera. I also made
`Base.show_invalid`
a `public` and documented function, since it is referenced from the
`ismalformed` docs and is required by new implementations of
`AbstractChar` types that support malformed data.
Fixes #54343, closes #54393.