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
we should restrict the type of the function in the `.mli` to require a `unit` here