Add float.infinity/0 to the standard library.

Add a constant function to the float module that returns positive infinity.
This is implemented for the C, Java, and C# backends.
The Erlang backend currently does not support it

library/float.m:
	Add the new function.

	Address review comments from Paul about my previous change.

tests/hard_coded/Mmakefile:
tests/hard_coded/test_infinity.{m,exp}:
	Test various operations involving infinity.

NEWS:
	Announce the addition.
Improve runtime sanity checking and error messages.

Always check the return value of calls to the function sem_init.
This function is not implemented on OS X and always returns an error.

Replace some direct calls to perror in the runtime with calls to MR_perror.
The latter ensures that the error message mentions that the error originates
from a call within the Mercury runtime.

runtime/mercury_context.c
runtime/mercury_prof_time.c:
runtime/mercury_threadscope.c:
	As above.
Document the problem with Mantis bug 360.

doc/reference_manual.texi:
    Document that minimal model is applicable only to model_non procedures
    and in .mm grades.

doc/user_guide.texi:
    Document the .mm grades.
Delete residual references to the mps grade component.

compiler/handle_options.m:
compiler/options.m:
	As above.
Remove GCC backend references from the TODO list.

compiler/notes/todo.html:
	As above.
Add missing local to foreign_decl pragma.

library/thread.m:
	The C functions ML_{incr,decr}_thread_barrier_count are declared
	with static linkage; their containing foreign_decl pragma should
	be marked as local.
Fix HTML in TODO list.

compiler/notes/todo.html:
	Fix a closing tag.
Rename MR_is_inf_func to MR_is_infinite_func as intended.

runtime/mercury_float.c:
	As above.
Fix problems with gcc -ansi.

runtime/mercury_float.h:
	Only define MR_is_{nan,infinite,finite} as macros on systems that
	support C99.
Add type cast in construction of direct arg functor value.

Add a type cast to the code generated by ml_gen_direct_arg_deconstruct
to construct a value with a direct argument functor.  The cast exists in
the same code generated by ml_gen_direct_arg_construct.

compiler/ml_unify_gen.m:
	As above.
Add a NEWS section for 14.01.2.

NEWS:
	As above.
Fix broken merge.

NEWS:
	As above.
Do not pass -ansi to GCC on any system.

Passing -ansi to GCC restricts us to the C90 dialect of C and prevents us from
using C99 library features with GCC.  Since every version of GCC we support
provides the relevant C99 features there is not much point to imposing this
restriction.  As already noted in the configure script the use of -ansi was
also causing problems with the header files on MinGW systems.  Finally, I do
think it is reasonable to require users to use the C90 dialect of C in
foreign_proc and foreign_code pragma bodies by default.

NOTE: this is *not* an invitation to start using C99 language features
throughout the runtime and library -- at this point, we (unfortunately) still
maintain compatibility with older versions of MSVC that don't support these
features.

configure.ac:
	Do not pass -ansi to GCC.  Add an explanation of why.

scripts/mgnuc.in:
	Update the description of the what the --no-ansi option does.
	(XXX there's _a lot_ of out-of-date stuff in this script.)
Update bug reporting details in declarative debugger.

browser/declarative_debugger.m:
	Update the details of where to send bug reports.
Update expected output for condition_bug test case.

tests/debugger/declarative/condition_bug.exp:
	Update for more accurate context introduced in
	commit 91ce3a67a25c82138c47eda74c1377b6fee53da8
extras/ Update the net library

This library had been neglected for a while and came to my attention when it
used deprecated (or at least old) C interfaces rather than newer reentrant
ones.  I've started to improve this library by giving a more typesafe and
Mercury-esque API, using only reentrant C functions, and eventually adding
support for more protocols, (eg: IPv6 and UDP) better integration with
Mercury's io module and generally making it easier to use.

What's working now:

    + creating sockets,
    + binding and listening,
    + connecting (untested),
    + accepting,
    + closing.
    + The interface is generally more type-safe, using new types suck as
      "socket" and "address" rather than "int" and "c_pointer".

What's not working/incomplete:

    + I havn't yet touched the tcp.m module, but I intend to remove it and
      create a new high-level interface for various protocols.
    + Any kind of reading / writing over sockets at all.
    + Name lookups.
    + A lot of the interface is incomplete / missing useful functions and
      predicates.

This is a work in progress.

Makefile:
    New Makefile.

README.md:
    New Readme file.

net.m:
    net is now a module containing the other modules as submodules.

sockets.m:
    Many changes as described above.

netdb.m:
    This new module contains host and other name lookups.  Only service
    lookups are currently implemented.

types.m:
    Types shared by sockets.m and netdb.m.

echo.m:
    An example echo server.

errno.m:
    strerror functionality.

tcp.m:
    Conform to changes in net.m.