Workaround bug #354 in the cairo binding.

extras/graphics/mercury_cairo/Mercury.options:
	Add a workaround for bug #354.

	Don't attempt to install his library in the csharp grade.
Backport Boehm GC changes for Winpthreads support.

Make our changes to support Winpthreads match those of upstream
bdwgc commit 94b85eea2e2713c7a6071f1965b1e98e645e65a7

boehm_gc/include/private/gc_locks.h:
boehm_gc/win32_threads.c:
	As above.
Fix a problem with library installation with mmc --make.

Library installation with mmc --make sometimes attempt to install libraries in
non-existent grades, for example java.par or java.trseg.  The cause of this
problem is some left over code from the GCC backend, in particular the
high-level C base grade components imply multiple possible target languages, C
and asm.  This is a problem because of the XXX in the predicate
convert_grade_option/3, where we only update the current target language if the
base grade component has a single target language associated with it.

For example, when a library is being installed in the grades java and hlc.par.gc and
we are at the step where we install it in the hlc.par.gc grade (second, since the
libgrade list is sorted), we build up the following command line for the mmc subprocess
that will do the installation in that grade:

   mmc --invoked-by-mmc-make ... --make        \
	--grade java --use-grade-subdirs       \
	--grade hlc.par.gc --use-grade-subdirs \
	--java-only --use-subdirs <target>

(XXX I don't know why we need to keep repeating --use-grade-subdirs like this,
or why we have to pass --use-subdirs at all given that it is implied by
--use-grade-subdirs.  Or what the rationale for passing all the --grade options
to the subprocess is.)

When the option "--grade java" is processed the target language will be set to
Java, but because of the XXX in convert_grade_option/3, the target language
will not be set to C when the option "--grade hlc.par.gc" is subsequently
processed, hence the compiler will attempt to install the library in the
non-existent grade java.par.  (Since --target java implies automatic GC,
the .gc component will vanish.)

The fix is to remove the asm target language for the high-level C base grade
components.

Additionally, remove other left over code for supporting --target asm.

compiler/handle_options.m:
	Delete the "asm" target language for the high-level C base grade
	components.

compiler/make.m:
compiler/globals.m:
compiler/add_pragma.m:
compiler/write_deps_file.m:
	Delete references to "--target asm" and update some other comments
	where necessary.

compiler/modules.m:
	Delete two unused predicate that were only required by the GCC backend.

compiler/compile_target_code.m:
	Delete the unused predicate assemble/7 that was only required by the
	GCC backend.

compiler/mlds_to_c.m:
	Add an XXX comment about some code that was required to support
	"--target asm".

NEWS:
	Announce the fix.
Merge branch 'version-14_01-branch'