Port warning reporting to the "catch" pattern

Conflicts:
	chunk.ml
	error_report.mli
Add some combinators to ease isolating effects
Move warning management to Location
Make syntax error non fatal, reported as warnings