Abstracting away coercion indexes in Classops.
Fixing dependent inversion. Some exceptions were not caught by the tactic
monad.
Adding a smartmap[i] operator to maps.
Using Map.smartmap whenever deemed useful.
Fixing backtrace handling here and there.
STM: tell the user if the master is recomputing states validated by workers

When the worker fails, the master may need to recompute some states
the worker has already validates.  In this case they are colored
accordingly.
STM: worker sends back to master the last valid state

So that the master process does not require to compute it.
Still not all valid states are sent back.
Work around for bug in threads + blocking io streamlined
STM + CoqIDE: stop_worker message and UI
Load implemented in CoqIDE/STM (closes: #3223)
G_xml: protect against some possible Not_found
G_xml: remove some duplication in error fonctions
clib.mllib: remove duplicated Flags entry
Get rid of two utility files, obsolete now that configure is a .ml
Remove useless Xml_utils
CString: avoid redefining is_sub
Mltop: explicitly qualify calls to CUnix
CUnix: enriched (get_extension, sys_command, waitpid_non_intr) + cleaned
Relaunch all Unix.waitpid when they ended with EINTR

 Moreover, cleanup of System.connect (used by the "external" tactic).
Coqmktop without Sys.command, changes in ./configure -*byteflags options

NB: Please re-run ./configure after pulling this commit

 For launching ocamlc/ocamlopt, coqmktop doesn't use Sys.command anymore,
 but rather CUnix.sys_command, which is based on Unix.create_process.
 This way, we do not need to bother with the underlying shell
 (/bin/sh or cmd.exe) and the way arguments are to be quoted :-).
 Btw, many cleanups of coqmktop.

 Only difficulty: the -coqrunbyteflags of ./configure is a "meta-option"
 that collect as a string several sub-options to be given by coqmktop to ocamlc.
 For instance ./configure -coqrunbyteflags "-dllib -lcoqrun". We need now to
 parse all these sub-options. To ease that, I've made the following changes
 to the ./configure options:

 * The -coqrunbyteflags and its blank-separated argument isn't accepted
   anymore, and is replaced by a new option -vmbyteflags which expects
   a comma-separated argument. For instance:

   ./configure -vmbyteflags "-dllib,-lcoqrun"

   Btw, on this example, the double-quotes aren't mandatory anymore :-)

 * The -coqtoolsbyteflags isn't accepted anymore. To the best of my
   knowledge, nobody ever used it directly (it was internally triggered
   as a byproduct of the -custom option). The only interest I can think of
   for this option was to cancel the default use of ocamlc custom-linking
   on Win32 and MacOS. For that, ./configure now provides a -no-custom option.