Implemented char.is_(lead|trail)_surrogate/1.

For save conversion from UTF-16 to UTF-8, it is essential to know
if a character is a lead or trail surrogate character.
It is implied that
char.is_surrogate(Char) <=>
    ( char.is_lead_surrogate(Char)
    ; char.is_trail_surrogate(Char)
    ).

library/char.m:
    see above.
Merge remote-tracking branch 'upstream/master' into feature-char-lead-trail-surrogate
Merge remote-tracking branch 'upstream/master' into feature-char-lead-trail-surrogate
Merge branch 'master' into feature-char-lead-trail-surrogate
Merge remote-tracking branch 'remotes/upstream/version-14_01-branch' into feature-char-lead-trail-surrogate
Merge remote-tracking branch 'upstream/version-14_01-branch' into feature-char-lead-trail-surrogate
fix conflict due to library naming convention change
removed char. from the interface predicate names
Merge remote-tracking branch 'upstream/master' into feature-char-lead-trail-surrogate
NEWS: Announce the addition of is_lead/trail_surrogate predicates
Remove documentation for --enable-dotnet-grades from configure.

The presence of the option --enable-dotnet-grades in the configure options
is confusing users.  Hide the documentation for it.

Delete the configure option --enable-minimal-hlc-trail-install which was
only ever added as a shortcut for members of the G12 project.  It's just
cluttering things up now.

configure.ac:
.INSTALL.in:
	As above.
Merge remote-tracking branch 'upstream/master' into feature-char-lead-trail-surrogate
Merge remote-tracking branch 'upstream/master' into merge-java-on-windows
Merge remote-tracking branch 'origin/feature-char-lead-trail-surrogate' into merge-java-on-windows
Wrap some too-long lines in the library.
Record each kind of error when reading in files.

compiler/prog_io_error.m:
    Replace the enum that used to record only whether we found no errors,
    some nonfatal errors or some fatal errors, with a type that records
    just what kinds of errors we found. Document each kind of error.

compiler/prog_io.m:
    Record any errors using the new type. In some cases, we used to
    forget fatal errors after finding nonfatal ones; now we don't.

compiler/read_modules.m:
    Do not generate error messages about not being able to open a file
    if we *could* open the file, but found other fatal errors inside it.

    Factor out some common code.

compiler/intermod.m:
    Ignore the error of not being able to open .opt files, but do not
    ignore any other errors inside them. This fixes a long-standing piece
    of strange-looking code.

compiler/module_imports.m:
    Do not ignore old fatal errors if reading a new interface file
    gets some new nonfatal errors. This fixes a long-standing XXX.

compiler/write_module_interface_files.m:
    Do not ignore fatal errors when considering whether to write out interface
    files. This fixes a long-standing XXX.

compiler/modules.m:
    Generate better error messages for fatal errors inside modules
    other than not being able to open the module.

compiler/deps_map.m:
compiler/make.module_dep_file.m:
compiler/mercury_compile.m:
compiler/module_deps_graph.m:
compiler/recompilation.check.m:
compiler/trans_opt.m:
compiler/write_deps_file.m:
    Conform to the change in prog_io_error.m.
Consistently use set.is_empty and set.is_non_empty.

compiler/*.m:
deep_profiler/*.m:
    As above.

library/set.m:
library/set_bbbtree.m:
library/set_ctree234.m:
library/set_ordlist.m:
library/set_tree234.m:
library/set_unordlist.m:
    Add is_non_empty to the set modules that did not already have it.
    (Some did, some didn't.)

    Make the documentation of empty, is_empty, non_empty and is_non_empty
    consistent.
Merge remote-tracking branch 'upstream/master' into merge-java-on-windows