Test each mono C# compiler to determine if it can handle generics.

The 'mcs' compiler on my system cannot handle generics.  This change to the
configure script macros tests each candidate mono C# compiler for generics
support.  If a candidate does not handle generics, then the next candidate
is tested.

m4/mercury.m4:
    As above.

    I have also stripped trailing whitespace the end of lines in this file.
Add support to allow the user to specify the C# compiler.

configure.ac:
    Add a new option, --with-csharp-compiler, that allows the user to
    specify what C# compiler to use.

m4/mercury.m4:
    If the user specified a C# compiler using the --with-csharp-compiler
    then use that.
Fix indentation in configure's help text.
Provide a helpful error if no C sharp compiler could be found

m4/mercury.m4:
    If the user specified one or more possible C sharp compilers and none
    of them were suitable, then report an error and abort.
Improve compatibility with makeinfo 5.1

The newer version of makeinfo is more pedantic about the use of the
@itemx token.  To allow our documentation to compile I've replaced a number
of @itemx tokens with @item tokens.

doc/reference_manual.hexi:
doc/user_guide.texi:
    As above.
Define equality for version_hash_tables.

library/version_hash_table.m:
    Add user-defined equality to the version_hash_table/2 type.

    Rename fields of the inner structure as the num_occupants function
    no-longer has the same type as the function generated by the field of
    the same name.

    We can make a similar change to hash_table.m at a later date.
Make pointer_equals/2 pure.

library/version_hash_table.m:
    As above.
Fix test for mfiltercc on Solaris.

On Solaris, the 'which' utility does not return a non-zero exit status
to indicate that the program (in this case, "mfiltercc") was not found,
so we ended up treating its error message output as a path.

scripts/mgnuc.in:
	Don't use 'which'.  Simply try to run any copy of mfiltercc on
	the PATH, with empty input.
Pass AR, RANLIB down to libatomic_ops build system.

This allows AR and RANLIB to be overridden.

boehm_gc/Makefile.direct:
boehm_gc/build_atomic_ops.sh:
	As above.
Avoid grep -q in configure.

The Solaris implementation of grep still doesn't support the -q option.

m4/mercury.m4:
	As above.
Documentation improvements for non-C backends.

README.CSharp:
	Delete the note about the C# backend being an experimental feature.

	Add a paragraph describing the situation with different versions
	of the .NET libraries on Mono.

	Emphasise that you must use mmc --make with the C# backend.

README.Java:
	Delete the note about the Java backend being an experimental feature.

	Emphasise that you must use mmc --make with the Java backend.

README.Erlang:
	Emphasise that you must use mmc --make with the Erlang backend.

configure.ac:
	Reword the documentation of --with-csharp-compiler.
Fix typos in documentation for string.unsafe_index_code_unit.

library/string.m:
	As above.
Work around `isinf' link error on Solaris.

On Solaris, `isinf' is detected by configure but we pass -fno-builtin
for global registers on x86/x86-64, and that causes an undefined
reference to `isinf' when linking.

configure.ac:
runtime/mercury_conf.h.in:
	Check for existence of `finite'.

runtime/mercury_conf_param.h:
	Define MR_SOLARIS if appropriate.

runtime/mercury_float.c:
	Don't use `isinf' or `isinff' on Solaris.

	Add a better `MR_is_inf' fallback using `finite'.
Update the NEWS file for 13.05.1

NEWS:
	As above.
Merge branch 'version-13_05-branch'