Support signing assemblies in the C# backend.

Add a new option, `--sign-assembly', to the Mercury compiler that causes it to
sign library assemblies generated by the C# backend with a user-specified
strong name.  There was an existing undocumented option of the same name for
use by the IL backend; it has been renamed to --il-sign-assembly.

compiler/options.m:
	Add the new option.

	Rename the existing `--sign-assembly' option to `--il-sign-assembly'.

compiler/compile_target_code.m:
	Optionally sign library assemblies.

compiler/mlds_to_il.m:
compiler/mlds_to_managed.m:
compiler/write_deps_file.m:
	Conform to the above changes.

doc/user_guide.texi:
	Document the new option

NEWS:
	Announce the new option.
Add an option for controlling the C stack size on Windows.

Add a new option, --cstack-reserve-size, that specifies the amount of virtual
memory that should be reserved for the stack in executables on Windows systems.
This is useful for non-trivial programs that use the high-level C backend since
they often bump into the default 1Mb limit.

compiler/options.m::
	Add the new option.

compiler/compile_target_code.m:
	Pass the appropriate flags to the linker if the new option is given.

doc/user_guide.texi:
	Document the new option.

NEWS:
	Announce the new option.
Fix a syntax error.

compiler/options.m:
	Fix a syntax error introduced in my previous change.
Fix bug #279.

tools/bootcheck:
	When setting up the stage 2 directory, create a link to
	the file containing the Mercury strong name.

	Delete some stuff that was only needed by the GCC backend.
Fix unexpected memory retention by mvars.

Even after "taking" a value out of an mvar, the reference to the value
actually still remained.  This may lead to higher than expected memory
usage.

(Aside: putting a dummy value into an mvar is a bad idea and unsolved by
this change.  In low-level C grades whatever value happened to be in the
register for the value argument in the mvar.put call will be placed into
the mvar, and it might point to some large value which is otherwise
collectable.)

library/thread.mvar.m:
	Make mvar.take and mvar.try_take clear the underlying mutvar
	after retrieving the value.

library/mutvar.m:
	Add clear_mutvar in support.
Fix compilation of the stage 2 Boehm GC with MSVC.

tools/bootcheck:
	Copy a file required by MSVC into the stage 2 boehm_gc
	directory.