Minesweeper exercise for OCaml

This turns out to be quite a good exercise for OCaml as it can be done in a functional style but there's a pretty elegant imperative solution as well.