Improved error messages

Short paper:
http://www.chargueraud.org/research/2014/ocaml_errors/ocaml_errors.pdf

Slides:
http://www.chargueraud.org/research/2014/ocaml_errors/demo.html

Video:
https://www.youtube.com/watch?v=V_ipQZeBueg

Technical description:
See file improved_errors_branch.txt in the new branch (or in the diff page at the url below).

Patch:
https://github.com/charguer/ocaml/compare/ocaml:4.02...improved-errors
I'm not sure that "-explain-type-errors" would be better, because the patch is not adding more explanations to an existing type error; it simply presents an alternative, presumably more helpful, type error. I'm nevertheless open to an alternative name for the flag. What about: "-easy-type-errors" ?