Minimal cutset algorithm

Here is an implementation of the minimal cutset algorithm by A. Shamir. I'm not the original author, it was first implemented by david monniaux, I merely "ocamlgraphed" it.

I've used it on various llvm control flow graph from C program and it seem to work flawlessly.

The original version was returning an option, with [None] if the graph was not reducible. It didn't seem in line with the rest of ocamlgraph, so I changed it, but if you think otherwise, I can change it back. 

Should I check that the graph is indeed directed ? I'm not sure how the algorithm would behave on non directed graphs. In the worst case, It will probably just say that the graph is not reducible.

I hosted the article [here](http://poulpe.yt/bazar/shamir.pdf) since it's basically impossible to find online. I would prefer if it was hosted somewhere more appropriate. (on ocamlgraph website ?)

@backtracking "Tomorrow" since OUPS was a bit further away than I expected! :(