Add .gitignore files to the extras/ directory

extras/.gitignore:
    Mercury ignores the --use-{grade}-subdir dir
    Mercury/** for git 1.8+ this recursively ignores all build files
    ignoring *.mh and *.init files
    *.err output files
    lib*.{dll|so|a|dylib} ignores target compiler library output
    *.jar ignores the Java grade output
    *.exe for Windows executables

extras/dynamic_linking/.gitignore:
    ignoring the copy of dl.m, name_mangle.m
    ignoring hello lib and dl_test* executables

extras/moose/samples/.gitignore:
    ignoring cgram.m small.m alpha.m expr.m which are
    generated from the .moo grammar files

extras/graphics/mercury_cairo/samples/.gitignore:
    ignoring *.png output and all executables

extras/**/.gitignore:
    In each sample/test/example folder the linux executable/test
    output is ignored
fix extras/graphics/ examples

Replace all occurances of index0_det with det_index0 to make these examples
compatible with recent versions of Mercury.

extras/graphics/easyx/samples/bounce.m:
extras/graphics/mercury_allegro/examples/exspline.m:
extras/graphics/mercury_allegro/samples/demo/aster.m:
extras/graphics/mercury_allegro/samples/speed/view.m:
    As above.
Re-enable the use of texi2dvi on Cygwin.

configure.ac:
	Very old versions of Cygwin had a broken texi2dvi, so we disabled its
	use on that platform.  Re-enable its use since it works with the
	current version.
Avoid some C compiler warnings on Cygwin.

library/int.m:
	Avoid warnings about overflows in implicit constant conversions in the
	implementations of {min,max}_int/0 on Cygwin.  The C compiler is
	complaining about where we assign LONG_MIN or LLONG_MIN to a 32-bit
	MR_Integer.  This only occurs in code branches that are dead when
	MR_Integer is 32-bit, so the fix here is just to put in some explicit
	casts.
Make string/1 handle version_arrays in the same way as io.write/3 etc.

library/string.m:
	As above.
NEWS:
	Add a section for 14.01.1 news.

	Mention the above change.

tests/hard_coded/string_string.{m,exp}:
	Extend this test case to cover arrays and version arrays.
Fix a typo in the NEWS file.

NEWS:
    As above.
Avoid using non-MSVC command line options with MSVC.

The configure script tests the for the presence of various C compiler command
line options by attempting to compile a small test program with those options.
Testing for command line options this way does not work with MSVC since it will
print a warning about the option not being recognised and then carry on as normal.
There is no way to tell MSVC to treat this warning as an error.

The above behaviour resulted in the Mercury.config file for installations
configured to use MSVC containing flags for non-MSVC compilers.

configure.ac:
	Avoid testing for non-MSVC command line options by compiling a test
	program when we are using MSVC as the C compiler.

	Fix a typo: s/boostrap/bootstrap/
Fix spelling in library documentation.

library/string.m:
library/term.m:
library/term_io.m:
library/version_hash_table.m:
	As above.
Minor fix for README.Java.

README.Java:
	Add a missing word.
Add more entries to .gitignore files

This is a consecutive patch to my previous patch, it extends the .gitignore
files to work more thoroughly on Windows.

browser/.gitignore:
    ignore .net .dll assemblies

compiler/.gitignore:
    ignore *.obj

extras/.gitignore:
    Ignore the tags directory
    Ignore: *.bat, *.lib,
    Ignore *.dll rather than lib*.dll because the .net assemblies are not
    prefixed.

extras/dynamic_linking/.gitignore:
    Ignore *.out (test output files)

extras/error/.gitignore:
    Ignoring unix binary for the error utility

extras/lex/tests/.gitignore:
    Ignore the test_regex binary

extras/moose/tests/.gitignore:
    Ignore array_based.m because it is generated from array_based.moo
Change extras/net/*.m file mode to 0644

extras/net/net.m:
extras/net/sockets.m:
extras/net/tcp.m:
    chmod 644
Improve README.bootstrap

During the bootstrap process it is necessary to clean the build tree between
the initial and complete builds.  This patch describes this and adds
commands to the instructions that clean the build tree.

As compilation can take a long time I've also added a paragraph describing
how to instruct make to run multiple parallel tasks.

README.bootstrap:
    As above.
Fix samples/rot13_concise + libxml compilation error

boehm_gc/.gitignore:
    Ignore .obj files

extras/xml/xml.dtd.m:
extras/xml/xml.parse.m:
    Change the name of functor ('1') in the multiplicity/0 type
    to one. The former name does not (yet) work with the C# grade.

samples/.gitignore:
    Ignore library output and sample executables.

samples/c_interface/standalone_c/.gitignore:
    Ignore mercury_lib_int output files.

samples/c_interface/standalone_c/Makefile:
    chmod 0644.

samples/c_interface/.gitignore:
    Ignore object files and executables.

samples/java_interface/.gitignore:
    Ignore Java class files and executables.

samples/lazy_list/.gitignore:
samples/muz/.gitignore:
samples/rot13/.gitignore:
    Ignore executables.

samples/rot13/rot13_concise.m:
    Update call to index_det to use string.det_index.
    Added comments to clarify type inference.

samples/solutions/.gitignore:
    Ignore executables.

samples/solutions/all_solutions.m:
samples/solutions/n_solutions.m:
samples/solutions/one_solution.m:
samples/solutions/some_solutions.m:
    chmod 0644.

samples/solver_types/.gitignore:
    Ignore executables.

samples/solver_types/sudoku.m:
    Output the solution in a 3x3 grid.
Delete --no-main from COMP_FLAGS.

main.c was deleted in commit 268b6fff783f709e40e4b71b3c2a5cfccafceac9
and --no-main was removed from MLFLAGS, but another instance occurs in
COMP_FLAGS.  The latter only affects the mmc --make build process,
not mmake.

compiler/COMP_FLAGS.in:
	Delete --no-main from COMP_FLAGS to restore compilation
	with mmc --make.