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 don't understand this explanation, and I think it could be in `btype.mli` instead.