Add OCaml checker

Here is a simple crack at OCaml #254.  This is more an RFC, not expecting to get
pulled here. Amends can come later.

I find in general the column OCaml reports is off by some arbitrary amount,
I don't know why.

I found another example[0] of tricky OCaml compiler output (which could be
added to a test file), where the first "File" message's info is useless, and
the actual location of the error is in a second message "File … line 1090" much
later.

```
ocamlopt -c -o wsi.cmx -I +lablGL wsi.ml
File "wsi.ml", line 1:
Error: The implementation wsi.ml does not match the interface wsi.cmi:
       Values do not match:
         val init :
           t -> int -> int -> int -> bool -> Unix.file_descr * int * int
       is not included in
         val init : t -> int -> int -> bool -> Unix.file_descr * int * int
       File "wsi.ml", line 1090, characters 4-8: Actual declaration
```

[0] This comes from the v20 tag of llpp http://repo.or.cz/w/llpp.git