Fix a problem that left references to undefined labels in C code.

The problem was introduced by my recent change that removed the definitions
of internal labels if those labels started while loops, and all references
to them would be converted into "continue" statements within those loops.
The diff removed the definitions of these labels, but they were still being
declared. Those declarations expand out to nothing in most cases, which is
why I did not notice the problem, but they are used in some situations,
such as when MR_LOWLEVEL_DEBUG is defined, in which case they register
the correspondence between the names of labels and the code addresses
they represent. The problem was that the code that was registering this
correspondence referred to a now-undefined label.

compiler/llds_out_file.m:
   When gathering labels to declare, delete while labels that won't end up
   being defined.

   We used to compute the list of entry and internal labels three times:
   when deciding the list of labels to forward-declare up front, when deciding
   the list of labels to define in each module, and when deciding whether
   a C module defined any labels without layout structures. We now
   do it just once, up front, and record the result for later use.

   Fix some out-of-date comments.

tests/hard_coded/no_refs_to_deleted_labels.{m,exp}:
   A test case derived from the code that brought the problem to my attention.

tests/hard_coded/Mmakefile:
   Enable the new test case for LLDS grades. (The problem isn't relevant
   in other grades.)

tests/hard_coded/Mercury.options:
   Specify -DMR_LOWLEVEL_DEBUG when compiling the new test case, to make
   the test case fail without the bug fix.

compiler/opt_debug.m:
   Fix white space in LLDS dumps.
Do not escape character strings in internal atom representation.

The internal representation of a character constant as an atom term
should not use escaped character syntax; the escaping should occur
when writing the external representation only.

compiler/hlds_out_mode.m:
compiler/intermod.m:
compiler/prog_util.m:
compiler/type_constraints.m:
compiler/typecheck.m:
	Fix instances of the bug.

tests/valid/Mercury.options
tests/valid/Mmakefile
tests/valid/intermod_char.m
tests/valid/intermod_char2.m
	Add test case.  The .opt file was invalid because the character
	in the clause head was doubly-escaped.
Merge fix for bug #330 into version-14_01-branch

Commit 5254245ae34ab6b3ca0f7dcd3c7fc807e1407f7d was inadvertently
merged onto version-14_01-branch but NOT the subsequent fix in
commit 8c72b1e5c0c23353770c494bcdf35a450ebf7c85
Fix no_refs_to_deleted_labels failures.

MR_LOWLEVEL_DEBUG is set when compiling the no_refs_to_deleted_labels
test case to give MR_init_label macros some effect.  However
MR_LOWLEVEL_DEBUG implies MR_DEBUG_GOTOS, and leads to link errors if
the runtime was not built with MR_DEBUG_GOTOS.

tests/hard_coded/Mercury.options:
	Replace MR_LOWLEVEL_DEBUG with MR_DEBUG_LABEL_NAMES,
	implying MR_INSERT_LABELS but not MR_DEBUG_GOTOS.
Fix mandelbrot's --help message.

Fix a missing newline and document the --parallel option.

benchmarks/progs/mandelbrot/mandelbrot.m:
    As above.