Change Show instances for Char and String to match their literals

Adapted from the corresponding GHC Prelude code.

Included are:
- a fix for rendering Char literals in the C backend in match clauses,
- an update to language-java fixing rendering of Char and String literals, and
- a fix for rendering the `LChInt` primitive in the Java backend, bringing it in line with the Java primitive code.

All of these are required for this new code to work.