Added a new module HMap. It works (almost) like Map, except that it expects
the provided type to come with a hashing function. The internal representation
is changed, such that values are first compared w.r.t. to their hash.

This effectively saves a lot of comparisons which may be far more expensive
than O(1), as in the string case, hence resulting in an overall speedup.

CAVEAT: everything is not implemented yet, and order-sensitive functions
now do not respect the provided order anymore.
Fixing previous commit. Forgot to include some code.
Fixing compilation on OCaml 4.01.
Adding a canary library. This canary is imperfect. It allows serialization
(hopefully), and forbids generic equality. Still, it allows generic hash.
Lazily computed hash in KerName.t.
Canary testing absence of generic equality for KerNames
Using HMaps in Safe_env.environments, hopefully improving performances.
Fixing interpretation of tactics in terms. It was forgetting part of the
environment.
Fix typo in comment.
remove trailing '\r' from file names returned by coqtop
Uses slashes for install and config directories
Lets coqtop use a slash
make install-coqlight installs DLLCOQRUN and LIBCOQRUN
Inductive maps in Environ now use HMap.
Custom canary